我为一所学校制作了一个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)
??我该如何使用它?
答案 0 :(得分:2)
您可以将文件插入ZIP文件中,并将其与应用程序打包或打包在JAR文件中。
稍后,使用getClass().getResourceAsStream(file)
获取对该文件的引用。
提取照片并在应用程序中显示它们。
答案 1 :(得分:0)
在NetBeans中,将所有照片放在一个文件夹下,例如fotos
,然后创建JAR文件。现在,在与runnable jar文件相同的位置,粘贴fotos文件夹。打开JAR文件并删除其中的fotos
文件夹。
当您运行JAR文件时,类路径将是JAR文件的当前路径,Java将在当前类路径中查找名为fotos
的文件夹,因为您具有fotos
文件夹JAR文件的位置。你的照片将从那里加载。