【发布时间】:2012-10-04 14:33:05
【问题描述】:
这是我的目录结构
XYZ项目
- 构建
- 分布
- nbproject
- 源代码
我正在研究 netbeans。
现在我有一个名为 ABC.txt
的文件
我想把它打包到 jar 文件中。
现在我做了以下事情:在源包下创建一个名为 Resources 的新文件夹,并将文件 ABC.txt 放入其中。
XYZ项目
-- src
|
-- Resources
|
-- ABC.txt
现在我想独立于文件位置访问此文件。所以我按照一些教程做了这个,
URL url = XYZProject.class.getClassLoader().getResource("Resources/ABC.txt");
String urlStr = urlStr.getFile().replaceAll("%20", " ");
System.out.println(urlStr);
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(urlStr)); .....
} catch (FileNotFoundException e) {...}
现在,当我通过 netbeans (即 F6 和 tada WORKS)运行代码时,这可以正常工作!!!
但是当尝试运行 jar 时,它找不到该文件。它抛出 FileNotFoundException
如何访问通过 netbeans 和 java -jar 运行的 jar 中的文本文件?
我也不知道为什么我得到的网址中有一个 %20 而不是空格。
输出运行 VIA NB
/D:/.../.../.../.../XYZProject/build/classes/Resources/ABC.txt
运行VIA java -jar的输出
file:/D:/.../.../.../.../XYZProject/dist/XYZProject.jar!/Resources/ABC.txt
【问题讨论】:
标签: java url jar classloader embedded-resource