【问题标题】:image doesn't diplay in jar file图像不显示在 jar 文件中
【发布时间】:2014-06-08 17:31:08
【问题描述】:

我有一个 netbeans java GUI 项目。它包含用于图像的 java 文件和文件夹。我的项目中最重要的部分是通过单击一个按钮来显示图像,假设它是 NEXT 按钮。当我点击 NEXT 按钮时,图像将从 IMG 文件夹中一张一张地显示出来。我将图像放在标签中,如下所示:

lblImage.setIcon(new ImageIcon(getClass().getResource("../IMG/"+ namaGambar[gambarPos])));

我运行该程序,到目前为止,它可以按我的意愿运行。

然后,我需要将项目创建为 jar 文件。我跟着Export JAR with Netbeans和this创建了我的项目的jar文件,最后我在./dist/目录中得到了myProject.jar文件。

当我运行 myProject.jar 时,我发现有问题。当我单击 NEXT 按钮时,图像不像我在 netbeans 中尝试过的那样显示。我很困惑,我在lblImage.setIcon(new ImageIcon(getClass().getResource("../IMG/"+ namaGambar[gambarPos]))); 中做错了什么吗? 或者这里有什么问题?

我该如何解决这个问题?

【问题讨论】:

  • 请说明图片的保存位置。它们是否添加到 jar 文件中?
  • 提取jar文件并验证图像文件是否在正确的位置。

标签: java netbeans jar


【解决方案1】:

您可以使用 "/" + zip entry name of the data 在 jar 中获取资源。

假设您的 jar 文件如下所示:

xyz.jar
   |------IMG
   |       |-------picture1.png
   |       |-------picture2.gif
   |       |-------picture3.jpeg
   .       .
   .       .
   .
   |------org
   .       |-------example
   .       .          |---------MyClass.class
   .       .          .
   .       .
   .

你必须使用

"/IMG/"+ namaGambar[gambarPos]

作为Class.getResource的参数。


NetBeans 从文件夹 build/classes 而非 jar 文件中运行程序。这解释了不同的行为。

【讨论】:

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