【问题标题】:Exported JAR file does not show images导出的 JAR 文件不显示图像
【发布时间】:2015-04-23 14:56:33
【问题描述】:

我在 Eclipse 中有一个 Java 项目。这是文件夹结构:

代码包位于src,所有图片都在res文件夹中。

代码中的图片是这样引用的:

new ImageIcon("res/settings.gif");

但是,在我将项目导出到 JAR 文件(通过在 Eclipse 中使用 Export -> Runnable JAR File)并运行 JAR 后,没有显示任何图像。如果我用 WinRAR 打开 JAR,它的结构是这样的:

所有图片都在根目录下,不能正确引用。如何正确引用图像,以便它们在 Eclipse 和导出的 JAR 中都可见?

【问题讨论】:

  • 导出 Jar 时选择了哪些选项?
  • 我认为是因为 eclipse 作为其主文件夹运行的内容与 jar 认为其主文件夹的内容有所不同。无论哪种情况,都可以使用绝对路径。

标签: java eclipse jar


【解决方案1】:

res/ 文件夹未在 .jar 文件中创建。看来资源位置不应该是"res/settings.gif",而是"/settings.gif"。

如果您在 Eclipse 中进行调试,您会得到它的工作,因为主目录将是您项目的根目录,res/ 文件夹实际上存在于其中。

【讨论】:

    【解决方案2】:

    解决方案是使用绝对路径

    new ImageIcon("/settings.gif");
    

    或确保将res 文件夹复制到jar 中。也许 src/res 或在 Eclipse 中将该文件夹标记为源文件夹;我现在在另一个 IDE 中。

    那就是

    new ImageIcon("/res/settings.gif");
    

    【讨论】:

    • 你确定 ImageIcon 可以从资源中加载图片吗?使用的带有一个 String 参数的构造函数是 AFAIK,用于指定文件名,而不是资源名。
    【解决方案3】:

    我想我找到了解决办法:

    替换这个

    new ImageIcon("res/settings.gif");
    

    与

    new ImageIcon(this.getClass().getResource("/settings.gif"));
    

    可在 Eclipse 和可运行的 JAR 文件中工作。

    【讨论】:

      猜你喜欢
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 2013-10-24
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多