我有一个netbeans java GUI项目。它包含java文件和图像文件夹。我项目中最重要的部分是通过单击按钮显示图像,让我们说它是NEXT按钮。单击“下一步”按钮时,图像将逐一显示在IMG文件夹中。我将图像放在标签中,如下所示:
lblImage.setIcon(new ImageIcon(getClass().getResource("../IMG/"+ namaGambar[gambarPos])));
我运行该程序,到目前为止,它可以按我的意愿运行。
然后,我需要将项目创建到一个jar文件中。我跟着Export JAR with Netbeans和this创建了我的项目的jar文件,最后我在./dist/目录中得到了myProject.jar文件。
当我运行myProject.jar时,我发现有些问题。当我单击“下一步”按钮时,图像不会像我在netbeans中尝试过的那样显示。我很困惑,我在lblImage.setIcon(new ImageIcon(getClass().getResource("../IMG/"+ namaGambar[gambarPos])));
做错了什么
或者这里有什么问题?
我该如何解决这个问题?
答案 0 :(得分: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文件运行。这解释了不同的行为。