【发布时间】:2013-01-31 00:18:18
【问题描述】:
我有一个关于 .jar 导出的问题。我必须在我的 jar 中包含一个 .txt 文件,从那里我将单词读入列表。我用这个来实现(在eclipse运行+调试模式下效果很好):
File file = new File(Worte.class.getClassLoader().getResource("resource/wortliste.txt").getFile());
现在,如果我将它导出到 JAR 文件中,JAR 文件应该是可执行的,并且它在资源中包含 list.txt 和 .java 文件(因为它是家庭作业;-)),但是程序的行为就像没有文件一样。当我使用 getResourceAsStream() 时,我遇到了同样的问题。有谁知道为什么这不起作用?我不明白这一点,因为我在 2 周前使用另一个代码完成了此操作,并且它可以正常工作。
我尝试过的:
- 删除项目并导入新项目
- 类似 1,但进入新工作区
我的系统是 Windows 7 x64 PC、Eclipse Juno 和 JRE7。
我用于导出的选项:
[] Export generated class files and resources
[x] export all output folders...
[x] export java source files...
[] export refactorings
[x] compress the contents...
[x] add directory entries
[x] overwrite existing files without warning
jar tvf ...
39 Wed Jan 30 16:19:14 CET 2013 META-INF/MANIFEST.MF
0 Wed Jan 30 00:34:16 CET 2013 resource/
100250 Wed Jan 30 00:37:24 CET 2013 resource/wortliste.txt
0 Wed Jan 30 00:34:16 CET 2013 wortspiel/
1291 Wed Jan 30 01:19:14 CET 2013 wortspiel/BuchstabenKollektion.java
2251 Sun Jan 27 16:24:42 CET 2013 wortspiel/TestBuchstabenKollektion.java
506 Sun Jan 27 17:38:48 CET 2013 wortspiel/UI.java
1187 Sun Jan 27 16:24:42 CET 2013 wortspiel/TestWorte.java
2932 Wed Jan 30 01:25:00 CET 2013 wortspiel/WortspielGUI.java
4384 Wed Jan 30 01:50:40 CET 2013 wortspiel/Worte.java
310 Sun Jan 27 16:25:08 CET 2013 .classpath
383 Sun Jan 27 16:22:32 CET 2013 .project
1992 Wed Jan 30 16:02:12 CET 2013 wortspiel/BuchstabenKollektion.class
2075 Wed Jan 30 16:02:12 CET 2013 wortspiel/TestBuchstabenKollektion.class
1104 Wed Jan 30 16:02:12 CET 2013 wortspiel/TestWorte.class
942 Wed Jan 30 16:02:12 CET 2013 wortspiel/UI.class
4701 Wed Jan 30 16:02:12 CET 2013 wortspiel/Worte.class
688 Wed Jan 30 16:02:12 CET 2013 wortspiel/WortspielGUI$1.class
688 Wed Jan 30 16:02:12 CET 2013 wortspiel/WortspielGUI$2.class
3475 Wed Jan 30 16:02:12 CET 2013 wortspiel/WortspielGUI.class
【问题讨论】:
-
你能给我们列出罐子里的东西吗?
jar tvf jarfilename -
This 答案可能对您有所帮助。它解释了
getResource相对于调用它的类的类路径是如何工作的。根据我的经验,这很有可能是您的问题的根源。 -
感谢 Henrik 的链接,但我也试过了:/我更新了 jar 内容@flup
-
jar 中没有
list.txt文件。仅限worliste.txt。 -
是的,我更改了放入 stackoverflow 的条目 :) 在我的代码中它仍然是 wortliste.txt ;-)