Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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 .jar导出不理解项目文件夹中的相对路径_Java_Jar_Intellij Idea_Relative Path - Fatal编程技术网

Java .jar导出不理解项目文件夹中的相对路径

Java .jar导出不理解项目文件夹中的相对路径,java,jar,intellij-idea,relative-path,Java,Jar,Intellij Idea,Relative Path,我有一个java项目,我使用了Intellij Idea。该项目运行良好,我已将其导出为jar。jar导出也正常运行,除了一个问题: 我的项目中有一个额外的资源文件夹,有两个csv文件,结构非常简单,有两列。在代码中,我使用了它们的相对路径,如下所示 private static final __MY_FILE = new File("resources/filename.csv"); 正如预期的那样,当我从IDE运行时,它可以正常工作。但是,当我将项目导出为jar时,代码会因FileNotF

我有一个java项目,我使用了Intellij Idea。该项目运行良好,我已将其导出为jar。jar导出也正常运行,除了一个问题:

我的项目中有一个额外的资源文件夹,有两个csv文件,结构非常简单,有两列。在代码中,我使用了它们的相对路径,如下所示

private static final __MY_FILE = new File("resources/filename.csv");
正如预期的那样,当我从IDE运行时,它可以正常工作。但是,当我将项目导出为jar时,代码会因FileNotFoundException崩溃,因为这些相对路径不再被视为相对于项目文件夹

暂时,我求助于在代码中提供完整路径,即uu MY_FILE=new FILE/home/../resources/filename.csv,但这显然是一种灾难性的做法

如何使用相对于项目文件夹的路径以使导出的.jar工作

目录结构如下:

networkmeasurements
    /matrixmethods
        /src
    /probabilisticmethods
        /src
    /utils
        /src
    /resources
        filename.csv

我试图从matrixmethods中的类中获取资源filename.csv。

您不能使用该文件,因为该文件在文件系统中不独立存在。例如,您需要getResourceAsStream

...
InputStream in = getClass().getResourceAsStream("/resources/filename.csv");
BufferedReader input = new BufferedReader(new InputStreamReader(in));
...

可能有很好的洞察力。您必须让Intellij将.csv文件识别为属性文件,以便它将它们捆绑起来。

我也认为这会起作用。我之前尝试过getResource,但是java.net.URL对象总是空的。此外,我还尝试了resources/filename.csv和/resources/filename.csv。两者都返回null。看到了一些我没有预料到的事情:我将filename.csv移动到src文件夹,getResourcefilename.csv工作正常。但是getResource../src/filename.csv为空。相同的文件名和位置,相同的类路径,但我似乎无法在目录结构中提升一级。@ChthonicProject,您能提供项目的目录结构以及csv文件所在的位置吗?添加了文件夹结构。@ChthonicProject,您能确认在jar中,filename.csv文件位于resources文件夹下?