【问题标题】:Can not load the images in Java Swing when running from a .jar-file从 .jar 文件运行时无法在 Java Swing 中加载图像
【发布时间】:2011-02-25 00:30:11
【问题描述】:

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

我加载我的图片:

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

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

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

【问题讨论】:

  • 你可以打赌问题出在你给它的路径上。首先,您最好使用绝对路径,而不是相对路径。其次,确保路径绝对正确,包括小写/大写,因为虽然Windows文件系统不区分大小写,但“JAR文件系统”是区分大小写的。

标签: java image swing jar classpath


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    然后将 jar 添加到类路径中,我正在以这种方式访问​​图像资源:

    getResource("images/logo.png");

    【讨论】:

    • @Jonas - 确保他们的文件夹已正确添加到类路径中。
    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2013-01-11
    • 2011-12-19
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多