【问题标题】:Displaying images within a jar file在 jar 文件中显示图像
【发布时间】:2014-07-16 21:15:20
【问题描述】:

我知道以前有人问过这个问题,但我已经研究了我能找到的所有解决方案,但无法让其中任何一个对我有用。我在 Eclipse 中有一个程序,我试图导出到一个可执行的 jar 文件。这是我第一次这样做。当我执行 jar 时,我的程序图像不显示。所以我做了一些研究,发现我需要将它们作为资源加载,但我似乎无法让它工作。

这是我用来加载没有 jar 的图像的代码:

private void initComponents()
{

    // create an enterprise icon and make it invisible
    enterpriseIcon = new JLabel(new ImageIcon("res/enterprise1.png"));
    enterpriseIcon.setVisible(false);
}

我的所有图像都放在我的项目根目录中一个名为 res 的文件夹中,我告诉 Eclipse 将该文件夹放入构建路径中。

当运行 jar 文件时图像不显示时,我尝试了以下方法:

enterpriseIcon = new JLabel(new ImageIcon(getClass().getResource("/res/enterprise1.png")));

  enterpriseIcon = new JLabel(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/res/enterprise.png"))));

但是,当其中任何一个从 Eclipse 中运行时,我得到一个空指针异常。 (我也尝试了其他一些方法,但以上是我认为我理解的唯一解决方案。)

我们将不胜感激。

【问题讨论】:

  • 尝试使用 getClass().getResource("/res/enterprise1.png")
  • 很抱歉遗漏了它,但这实际上是我首先尝试的。我更正了我的帖子以包含它。
  • 你试过“rez/enterprise1.png”这个路径吗?你确定jar中存在我的年龄并且路径是正确的
  • 看起来带有图像的 /res 文件夹不在 jar 中。我确实告诉 Eclipse 将此文件夹用作源文件夹。怎么让它放进罐子里?
  • 我遇到了类似的问题,最终通过使用getResourceAsStream而不是getResource解决了

标签: java eclipse jar resources


【解决方案1】:

使用Class#getResource获取jar文件中图片的URL

enterpriseIcon = new JLabel(new ImageIcon(getClass().getResource("/res/enterprise1.png")));

【讨论】:

  • 对不起,我也试过了。那应该是我帖子中第一个失败代码的例子,但我复制并粘贴了错误的东西。无论如何,它给了我同样的空指针异常。我会更正我的帖子。
  • @user2765703 验证图像是否在 jar 中。如果在指定路径中找不到任何内容,该方法将返回 null。您可以尝试一些变体,例如删除前导 /,但我认为这不应该奏效。
  • 我发现如果我将图像放在我的主项目的 /bin 文件夹中并将代码更改为 enterpriseIcon = new JLabel(new ImageIcon(getClass().getResource("企业1.png")));但是,如果可能的话,我希望能够使用我的 /res 文件夹。我确实告诉 Eclipse 把它放在构建路径上。我还有什么遗漏的吗?
  • 试试这个stackoverflow.com/questions/11209621/…。实际上,如果您已将 res 文件夹声明为源文件夹,您应该可以只说 enterprise1.png 或其他内容。
【解决方案2】:

试试这个。这对我很有效:)

private void initComponents() {
    try {
        BufferedImage icon = ImageIO.read(getClass().getResource("/enterprise1.png"));
        frame.setIconImage(icon);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

【讨论】:

    【解决方案3】:

    直到昨天我也面临同样的问题。我已经解决了这个问题。让我分享给你。

    • 在您的 Eclipse 中,转到您的项目名称。
    • 正确的项目名称。
    • 新建 -> 源文件/文件夹
    • 将此源文件/文件夹命名为图像
    • 现在在您的本地计算机上转到您的项目所在的 Eclipse 工作区 实际存在。
    • 将所有图像复制到新创建的 'images' 文件夹就在那里。
    • 现在回到 Eclipse。
    • 右键单击您的项目 -> 刷新
    • 现在,无论您在 .java 文件中使用图像的什么位置,转到这些行并在图像位置前加上 images/

    示例:XXX xxx = XXXX (example.jpg) 更改为 .... XXX xxx = XXXX (images/example.jpg)

    轰!! 运行 .jar 文件时将显示图像。

    注意:不要使用 java -jar AppName.jar 从 cmd 运行 .jar 文件 相反,只需双击 .jar 文件,您就会看到图像。

    如果它对你有用,请点赞。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2014-09-15
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多