【发布时间】:2019-06-19 08:08:21
【问题描述】:
我使用这个模式用 eclipse 创建了一个应用程序:
- 应用程序
- 源
- 包
- a.java
- 包
- 资源
- xmls
- b.xml
- xmls
- 源
在 a.java 中,我使用以下代码创建并使用一个文件:
File file = new File("resources/xmls/b.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(file);
此代码在 Eclipse 中运行良好,但是当我创建可运行的 jar 时,我收到此错误(我使用命令提示符运行此文件):
java.io.FileNotFoundException: D:\PROJECTS\App\build\dist\resources\xmls\b.xml (The system cannot find the path specified)
...
jar 文件位置是
D:\PROJECTS\App\build\dist
它似乎试图在jar所在的目录中找到资源文件夹。 我的问题,如何将此 b.xml 文件路径字符串作为可运行 jar 的 File 的参数?
【问题讨论】:
-
是的,我试过了,但它不起作用,同样的错误。
-
假设你用
java -jar app.jar path/to/file.xml运行它,你会用File xmlFile = new File(args[0]);得到这个参数。您也可以使用绝对路径。相对的将相对于您的.jar。 -
在jar文件中,有两个文件夹:package文件夹和xmls文件夹
-
我只使用 java -jar app.jar