我已经被这个问题困扰了一段时间了。我发现this和 this但这些解决方案对我来说根本不起作用。
我的 jar 在命令提示符下与 java -jar 完美配合,但是当双击时,会打开一个 JFrame 窗口,但在以下情况下失败:
Scanner fileLat = new Scanner( a.getClass().getResourceAsStream("/motor/resources/lat.txt") );
Scanner fileLong = new Scanner( a.getClass().getResourceAsStream("/motor/resources/long.txt") );
这会导致空指针异常和找不到资源。
我的目录结构(在 jar 内)如下所示:
/ (root)
|- META-INF
|- motor
|- main
|- Main.class
|- resources
|- lat.txt
|- long.txt
我的 MANIFEST.MF 内容如下:
Manifest-Version: 1.0
Class-Path: .
Main-Class: motor.main.Main
编辑: 我刚刚尝试this (特别是 jar:file:MyJar.jar!/etc...)并且它也不起作用。
最佳答案
您是否尝试从 list 中删除Class-Path
?
在我这里的示例中定义类路径并不常见:许多应用程序(包括 jEdit 和 jExt 安装程序)无需它即可运行。
您也可以尝试添加一个空的。
关于java - 双击启动时无法从 jar 中打开资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10537620/