我有一个关于 .jar 导出的问题。我必须在我的 jar 中包含一个 .txt 文件,从那里我将单词读入列表。我用它来实现(在eclipse运行+调试模式下效果很好):
File file = new File(Worte.class.getClassLoader().getResource("resource/wortliste.txt").getFile());
现在,如果我将它导出到 JAR 文件中,JAR 文件应该是可执行的,并且它在资源中包含 list.txt 和 .java 文件(因为它应该是家庭作业;-)),但程序的行为就像没有文件。当我使用 getResourceAsStream() 时,我遇到了同样的问题。有谁知道为什么这不起作用?我不明白,因为我两周前用另一个代码做了这个,它工作了o_O。
我试过的:
- 删除项目并导入新项目
- 像 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