我正在尝试将 Eclipse 中的 java 项目导出为可运行 jar,但由于某种原因,可运行 jar 不起作用。如果我双击可执行 jar,它不会执行任何操作。我尝试了提取所需的库并将其打包到生成的 jar 中。
所以我也尝试导出一些更简单的项目,效果很好。最大的区别是我的真实项目有文件:图像和xml文件。
在代码中像这样引用它们:
File file = new File("Recources/test.xml");
ImageIcon imageIcon = new ImageIcon("Recources/" + num + ".gif");
该项目的结构如下所示:
但是在可执行 jar 中它们看起来像这样:
感谢您的帮助。
编辑: 我已经尝试过“java -jar filename.jar”,但现在它说找不到我的资源文件夹,而在 eclipse 中它仍然可以找到它。
最佳答案
JAR 文件中的文件与存储在硬盘中的文件不同。如果您将文件包含在 JAR 中,它们将被视为字节流。所以你必须使用不同的方法来访问这些资源。
//To read/access your XML-File
BufferedReader read = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/test.xml")));
//To read/access your gif-Files
ImageIcon icon = new ImageIcon(this.getClass().getResource("/"+num+".gif"));
“/”不是文件系统的根文件夹,而是 JAR 内资源的根文件夹。
关于java - 用 eclipse 导出的可运行 jar 不起作用,在 eclipse 中它仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33331397/