[英]Can't find resource file after exporting to a runnable JAR
我有一个看起来像这样的项目结构:
Tester
\-- src
|-- hello.java
\-- vocabulary.csv
我使用getResource加载csv文件:
url = this.getClass().getResource("vocabulary.csv");
System.out.println(url.getPath());
new FileReader(url.getPath());
该程序完全正常,直到我将项目导出到可运行的jar文件。 即使URL仍然有效(他打印路径而不是null),控制台显示:
jar:file:/home/malte/Desktop/vocs.jar!/main/vocabulary.csv
Exception in thread "main" java.io.FileNotFoundException: file:/home/malte/Desktop/vocs.jar!/main/vocabulary.csv (No such file or directory)
你能解释一下为什么会发生这种情况以及如何解决这个问题吗?
PS我使用Xtend而不是纯Java
你需要使用
InputStream is = this.getClass().getResourceAsStream();
一旦你将源包装为jar。 你只有一个文件: your jar
。 您的vocabulary.csv
不再是文件系统上的独立文件。
你可以在这里阅读更多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.