在 Jar 文件中找不到 JavaFx 图像

标签 java image javafx

我正在尝试为我的项目生成一个可运行的 jar 文件,该文件具有 JavaFx gui。 该项目在 eclipse 中运行良好,但是当我尝试运行 jar 时:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   ...Caused by: java.lang.NullPointerException: Input stream must not be null

图像的代码如下:

private Image image1 = new Image(this.getClass().getResourceAsStream("../pic/classic/image1.png"));

我需要更改什么才能毫无异常(exception)地运行我的 jar 文件。

感谢您的帮助。

最佳答案

.. 在 jar 文件中指定资源名称时无效。根据documentation on resource naming资源路径的每个组成部分都应该是有效的 Java 标识符:.. 不是。

要解决此问题,只需指定相对于类路径的绝对资源名称。因此,如果您所在的类(class)位于名为 com.mycompany.myapplication.view 的包中,您将使用

private Image image1 = 
    new Image(this.getClass().getResourceAsStream("/com/mycompany/myapplication/pic/classic/image1.png"));

关于在 Jar 文件中找不到 JavaFx 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38444852/

相关文章:

java - 在for循环中添加列表/数组元素,java12

java - Spring MVC中Controller的方法参数中的Model模型

Python:标准化图像曝光

java - onClick() 更改图像

css - 如何在运行时覆盖(编辑)CSS 颜色?

javafx - 清除javafx中的场景

java - 如何在骨架实现(即类)中实现一个接口(interface),该接口(interface)的两个实例可以相互依赖,而无需向下转型?

java - 关于 Java 泛型

php - 显示文件夹中的图像(幻灯片)

java - 如何跟踪棘手的JavaFx卡住/挂起