从 .jar 文件运行时无法在 Java Swing 中加载图像

发布于 2024-09-03 10:54:45 字数 363 浏览 4 评论 0原文

我可以毫无问题地从 Eclipse 运行我的 Java Swing 应用程序。但是当我从 .jar 文件运行它时,图像无法加载。

我加载图像:

setIconImage(Toolkit.getDefaultToolkit().
getImage(getClass().getResource("../images/logo.png")));

如何加载图像,以便即使我从 .jar 文件运行时它们也能工作?

这些图像位于同一个 Jar 文件中的 com.example.images 数据包中,使用它们的类位于 com.example.gui.dialogs

I can run my Java Swing application from Eclipse without problems. But when I run it from a .jar-file, the images fails to load.

I load my images with:

setIconImage(Toolkit.getDefaultToolkit().
getImage(getClass().getResource("../images/logo.png")));

How can I load the images so they work even when I'm running from a .jar-file?

The images is in the same Jar-file, in the packet com.example.images and the class where they are used is in com.example.gui.dialogs

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

熊抱啵儿 2024-09-10 10:54:45

使用 jar 内的绝对路径。如果您不知道,请尝试使用 zip 程序(例如 7zip)打开 JAR。然后使用绝对路径:

getClass().getResource("/com/examples/images/logo.png")

显然,这仅在您的图像位于 jar 中时才有效。如果不是,但在你的类路径中,这也应该没问题。

Use the absolut path inside your jar. If you don't know it, try opening the JAR with a zip programm, e.g. 7zip. Then use the absolute path:

getClass().getResource("/com/examples/images/logo.png")

This obiously only works when your image is in your jar. If its not, but in your classpath, this should be fine too.

月亮是我掰弯的 2024-09-10 10:54:45

图像也应该打包在 jar 文件中。实际上,我并不是 100% 确定没有其他解决方案,但至少在尝试同样的问题时,我让它以这种方式工作。

然后将该 jar 添加到类路径中,我通过以下方式访问图像资源:

getResource("images/logo.png");

The images should be packed as well in a jar file. Actually, I'm not 100% sure there is no other solution, but at least I made it work this way, when experimenting the same issue.

The jar was then added to the classpath, and I'm accessing image resources this way:

getResource("images/logo.png");

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文