在将项目解压缩为可运行的jar后,我无法加载资源文件。
它在Eclipse中有效,但在导出后会抛出FileNotFoundException
。
我试图将res
文件夹放在.jar
文件旁边但没有任何帮助。我已尝试使用JarSplice并使其与所有库一起运行,但它会停止使用资源文件。目标文件位于源文件夹中。
我该怎么办?
代码
FileReader fr = null;
try {
fr = new FileReader(new File("res/" + fileName + ".obj"));
} catch (FileNotFoundException e) {
System.err.println("Couldn't load object file!");
e.printStackTrace();
}
编辑:通过打开7zip中的runnable .jar文件,我可以看到整个/ res文件夹在导出过程中已经消失,目录中的文件现在直接位于.jar文件的根文件夹中。
答案 0 :(得分:0)
根据您的代码,res
文件夹应直接放在当前工作目录之外,该目录应该是您运行Java命令的目录。例如,请在how to determine the current working directory from inside Java上查看此问题。
答案 1 :(得分:0)
使用路径代替新文件(字符串)。
FileReader fr = null;
try {
fr = new FileReader(Paths.get("res/" + fileName + ".obj").toFile());
} catch (FileNotFoundException e) {
System.err.println("Couldn't load object file!");
e.printStackTrace();
}