.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");