[英]Java/JavaFX, read files from inside project and jar file
我的项目文件夹中有一些我想阅读的图像和 xml 文件。 例如,我的代码在src/app/MyClass.java
。 我想阅读的文件在res/filename.png
, res/filename.xml
。
所以如果我想给我的项目一个图标,我会这样做(如果通过 Eclipse 运行可以正常工作):
primaryStage.getIcons().add(new Image("file:res/icon.png"));
问题是当我通过 .jar 文件运行它时,图像没有出现。 其他文件也一样。 通过jar文件找不到xml文件。
我试过这个:
InputStream input = getClass().getResourceAsStream("res/icon.png");
primaryStage.getIcons().add(new Image(input));
但是 Eclipse 说input
是null
。 我究竟做错了什么? 任何帮助将不胜感激!
关于为什么会这样,有一些可能性。 第一个是您正在运行 JAR 而不是可执行 Jar 文件。 程序无法显示图像的另一个可能原因是导出时您没有单击提取所需的库按钮,如下所示。 如果这些都不是下面的案例评论。
尝试创建一个名为resources
的source folder
(右键单击项目 > 新建 > 源文件夹)并将所有内容放入其中。 您现在可以执行getClass().getResourceAsStream("/file.ext")
并且它不应该是null
。
如果在创建 jar 文件后还有任何其他错误(按照上图),您可以通过命令行/终端运行它,它应该会显示您可能遇到的任何错误:
java -jar jarfile.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.