我的项目在 Eclipse 中运行得很好,但导出为可执行 jar 会导致一堆问题。.jar 不可执行,双击什么也不做。在 cmd 中的 .jar 上运行 java -jar 会产生很多 NPE,显然从 .jar 运行时的扫描仪为空。getResource 返回 null,我不知道为什么。
Scanner in = null;
try {
in = new Scanner(new FileReader(getClass().getResource(filename)
.getFile()));
readLine(in);
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
在哪里filename = "../001.txt"
运行扫描仪的类在game/
. 该文件001.txt
是应该工作levels/
的。../001.txt
这是清单在 .jar 中的样子
Manifest-Version: 1.0
Class-Path: .
Main-Class: game.Game
这是一个非常烦人的问题,谷歌搜索数小时没有提供解决方案,我之前也遇到过类似的问题,但实际上是加载相对路径而不是 NPE。