-1

我为一所学校制作了一个 Java 数据库程序,其中包含学生的照片……当我通过 NetBeans 运行该程序时,一切正常……

但是当我使程序成为“可双击应用程序”(使用 Jar Bundler)并运行该应用程序时:没有照片显示!(请注意,应用程序文件的大小仅为 700 KB 左右......当照片大小超过 2 MB 时。)

如何在“可双击应用程序”中包含照片,以便我可以直接运行包含所有照片的应用程序,而无需使用 NetBeans?

我将图像目录添加为项目的源根目录。

实际上,我右键单击该项目并选择了 Properties 项。我在对话框左侧的列表中选择了“来源”(这将更改对话框右侧面板的内容)。

我按下了“添加文件夹...”按钮并选择了图像文件夹(添加了图像文件夹的条目)。现在,当我制作 JAR 文件时,它的大小变成了大约 5 MB 而不是 700 KB。这很好。但是当我双击 JAR 文件并在 NetBeans 之外运行应用程序时。

考虑两种情况: 情况 1:如果我将 JAR 文件放在任何位置(例如在我的桌面上),应用程序无法显示照片... 情况 2:我必须将 JAR 文件放在与NetBeans 项目是。在这种情况下,没关系。

结果是 JAR 文件仍然依赖于照片文件夹。我需要将所有照片嵌入到 JAR 文件中,这样它就可以移植了。这意味着如果我将此文件带到任何其他计算机上,我可以在没有照片文件夹的情况下运行包含所有照片的程序。最后:我需要使用getClass().getResourceAsStream(file)吗??我该如何使用它?

4

2 回答 2

2

您可以将文件插入到ZIP文件中,并将其与应用程序一起打包或打包到JAR文件中。

稍后,使用getClass().getResourceAsStream(file), 获取对该文件的引用。提取照片并在您的应用程序中显示它们。

于 2012-04-24T19:15:05.727 回答
0

In NetBeans, put all photos under a folder, for example, fotos, and then make the JAR file. Now in the same location as your runnable jar file, paste the fotos folder. Open the JAR file and delete the fotos folder inside it.

When you run the JAR file, the classpath will be the current path of the JAR file and Java will look for the folder named fotos in the current classpath, as you have the fotos folder in the location of the JAR file. Your fotos will be loaded from there.

于 2012-04-24T19:32:27.013 回答