.jar 文件找不到图像文件路径
.jar File can't find image file path
我正在创建一个简单的程序,现在我想将其导出为可执行的 jar 文件。一切正常,除了 jar 文件找不到图像。
为了创建 运行nable JAR 文件,我使用了 Eclipse 2021-12 中的第二个选项(将所需的库打包到生成的 JAR 中)。这似乎工作得很好,因为我只有 jar 而没有其他文件夹我需要 运行 程序。
我的 jar 文件结构如下所示:
jar_file/
├─ 图片/
│ ├─ frog.png
我尝试了多种获取图像文件的方法。
我是这样定义图标的:
private static Image icon;
使用 toURI() 和 toString()
icon = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/frog.png").toURI().toString());
日食
这在 Eclipse 中不起作用。
路径输出:file:/C:/Projekte/serviceticketapp/target/classes/images/frog.png
Jar 文件
这在 Jar 文件中不起作用。
路径输出:rsrc:images/frog.png
使用 toExternalForm()
icon = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/frog.png").toExternalForm());
日食
这在 Eclipse 中不起作用。
路径输出:file:/C:/Projekte/serviceticketapp/target/classes/images/frog.png
Jar 文件
这在 Jar 文件中不起作用。
路径输出:rsrc:images/frog.png
使用文件和 toURI()
File imageFile = new File(getClass().getResource("/images/frog.png").toURI());
icon = Toolkit.getDefaultToolkit().getImage(imageFile.getAbsolutePath());
日食
这适用于 Eclipse。
路径输出:C:\Projekte\serviceticketapp\target\classes\images\frog.png
Jar 文件
抛出错误。
java.lang.IllegalArgumentException: URI is not hierarchical
总结
上面你可以看到我尝试获取图像文件的所有方法。只有一个在 Eclipse 中有效,其中 none 个在 jar 文件中有效。
我哪里做错了或者我必须如何安排文件才能使其在 jar 文件和 Eclipse 中工作。
请询问您是否需要更多信息。提前致谢。
我会使用 imagio (import javax.imageio.ImageIO
)
tIcon = new TrayIcon(ImageIO.read(getClass().getResource("/images/frog.png"), "Service Ticket App");
我正在创建一个简单的程序,现在我想将其导出为可执行的 jar 文件。一切正常,除了 jar 文件找不到图像。
为了创建 运行nable JAR 文件,我使用了 Eclipse 2021-12 中的第二个选项(将所需的库打包到生成的 JAR 中)。这似乎工作得很好,因为我只有 jar 而没有其他文件夹我需要 运行 程序。
我的 jar 文件结构如下所示:
jar_file/
├─ 图片/
│ ├─ frog.png
我尝试了多种获取图像文件的方法。
我是这样定义图标的:
private static Image icon;
使用 toURI() 和 toString()
icon = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/frog.png").toURI().toString());
日食
这在 Eclipse 中不起作用。
路径输出:file:/C:/Projekte/serviceticketapp/target/classes/images/frog.png
Jar 文件
这在 Jar 文件中不起作用。
路径输出:rsrc:images/frog.png
使用 toExternalForm()
icon = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/frog.png").toExternalForm());
日食
这在 Eclipse 中不起作用。
路径输出:file:/C:/Projekte/serviceticketapp/target/classes/images/frog.png
Jar 文件
这在 Jar 文件中不起作用。
路径输出:rsrc:images/frog.png
使用文件和 toURI()
File imageFile = new File(getClass().getResource("/images/frog.png").toURI());
icon = Toolkit.getDefaultToolkit().getImage(imageFile.getAbsolutePath());
日食
这适用于 Eclipse。
路径输出:C:\Projekte\serviceticketapp\target\classes\images\frog.png
Jar 文件
抛出错误。
java.lang.IllegalArgumentException: URI is not hierarchical
总结
上面你可以看到我尝试获取图像文件的所有方法。只有一个在 Eclipse 中有效,其中 none 个在 jar 文件中有效。
我哪里做错了或者我必须如何安排文件才能使其在 jar 文件和 Eclipse 中工作。
请询问您是否需要更多信息。提前致谢。
我会使用 imagio (import javax.imageio.ImageIO
)
tIcon = new TrayIcon(ImageIO.read(getClass().getResource("/images/frog.png"), "Service Ticket App");