在JAR文件中包含照片

时间:2012-04-24 19:11:06

标签: java

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

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

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

我添加了images目录作为项目的源根目录。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

在NetBeans中,将所有照片放在一个文件夹下,例如fotos,然后创建JAR文件。现在,在与runnable jar文件相同的位置,粘贴fotos文件夹。打开JAR文件并删除其中的fotos文件夹。

当您运行JAR文件时,类路径将是JAR文件的当前路径,Java将在当前类路径中查找名为fotos的文件夹,因为您具有fotos文件夹JAR文件的位置。你的照片将从那里加载。