Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java项目中引用.dat文件_Java_Eclipse_Path_Filereference - Fatal编程技术网

在Java项目中引用.dat文件

在Java项目中引用.dat文件,java,eclipse,path,filereference,Java,Eclipse,Path,Filereference,我正在努力在Eclipse中的java项目中引用.dat文件。我的文件结构如下所示: 我正试图从“LookupCountry.java”文件中引用“GeoIPLite.dat”。当我说“Reference”时,实际上是指获取路径的String对象,然后将其作为参数发送给位于jar中“Referenced Libraries”下的类 我在LookupCountry.java中的代码如下: try{ String dbFile = "../resources/GeoIPLite.

我正在努力在Eclipse中的java项目中引用.dat文件。我的文件结构如下所示:

我正试图从“LookupCountry.java”文件中引用“GeoIPLite.dat”。当我说“Reference”时,实际上是指获取路径的String对象,然后将其作为参数发送给位于jar中“Referenced Libraries”下的类

我在LookupCountry.java中的代码如下:

try{
    String dbFile = "../resources/GeoIPLite.dat"
    
    // TRIED ALL THESE AS WELL:
    //String dbFile = "/../resources/GeoIPLite.dat"
    //String dbFile = "/resources/GeoIPLite.dat"
    //String dbFile = "resources/GeoIPLite.dat"
    
    //Some more code calling the jar file......

}catch(IOException e){
    //Handles exception
}
所以基本上我得到一个从jar抛出的IOException,它说.dat文件的路径不正确


任何想法???

例如,在Eclipse中,当您运行一个类时,您可以将其配置为“当前文件夹”的位置。从菜单:运行>运行配置。。。然后选择您正在使用的

然后单击“参数”选项卡并检查工作目录

您的路径应该相对于此处显示的位置。(在剪裁图像中,它显示默认值,即项目本身的基本文件夹。)


您可以使用默认工作目录以新文件(“resources/GeoIPLite.dat”)的形式打开该文件。

resource
文件夹中使用与在
src
文件夹中相同的包结构。在Eclipse中将资源文件夹添加为源文件夹(请参见屏幕截图)。将.dat文件放在资源文件夹中,相对于要使用它的类。您应该在编译的类旁边看到资源文件

在代码中,参照资源文件,如下所示:

this.getClass().getResource("foo.txt");

分机是bat还是dat?.dat!对不起,我没有集中注意力。谢谢你指出这正是我的。当你们说“相同的包结构”时,当然会有不同的项目名称。您的意思是“资源”文件夹还应包含一个包com.deangrobler,该包又包含.dat文件吗?是的
getResource()
将返回URL。OP从未说过他是如何打开文件的。它可以是一个新的
文件(字符串)
或作为
this.getClass().getResourceAsStream(字符串)
,所需的路径将不同。您正在描述在后一种情况下要做什么。