[英]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.