繁体   English   中英

Java/JavaFX,从项目和 jar 文件中读取文件

[英]Java/JavaFX, read files from inside project and jar file

我的项目文件夹中有一些我想阅读的图像和 xml 文件。 例如,我的代码在src/app/MyClass.java 我想阅读的文件在res/filename.pngres/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 说inputnull 我究竟做错了什么? 任何帮助将不胜感激!

关于为什么会这样,有一些可能性。 第一个是您正在运行 JAR 而不是可执行 Jar 文件。 程序无法显示图像的另一个可能原因是导出时您没有单击提取所需的库按钮,如下所示。 如果这些都不是下面的案例评论。

单击完成后,您应该可以毫无问题地运行该文件。


尝试创建一个名为resourcessource folder (右键单击项目 > 新建 > 源文件夹)并将所有内容放入其中。 您现在可以执行getClass().getResourceAsStream("/file.ext")并且它不应该是null

如果在创建 jar 文件后还有任何其他错误(按照上图),您可以通过命令行/终端运行它,它应该会显示您可能遇到的任何错误:

java -jar jarfile.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM