Java 我可以将整个应用程序放在一个JAR文件中吗?
我不太明白Swing应用程序的创建实际上是如何工作的。 我创建了一个简单的应用程序,可以从路径中获取背景图像Java 我可以将整个应用程序放在一个JAR文件中吗?,java,swing,jar,executable-jar,embedded-resource,Java,Swing,Jar,Executable Jar,Embedded Resource,我不太明白Swing应用程序的创建实际上是如何工作的。 我创建了一个简单的应用程序,可以从路径中获取背景图像 ImageIcon imageIcon = new ImageIcon("C:\\Java\\ApplicationName\\out\\Resourses\\backGround.jpg"); Image image = imageIcon.getImage(); // Создание картинки из него Image temp = image.get
ImageIcon imageIcon = new ImageIcon("C:\\Java\\ApplicationName\\out\\Resourses\\backGround.jpg");
Image image = imageIcon.getImage(); // Создание картинки из него
Image temp = image.getScaledInstance(500,500,Image.SCALE_SMOOTH);
imageIcon = new ImageIcon(temp);
g2d.drawImage(temp,0,0,null);
它可以工作,所以我决定使JAR文件独立于Java文件夹中的更改(如删除此图像),并将图像放入src-images(包)中。我不知道这是否可能
我开始得到这样的背景图像
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/images/backGround.jpg"));
这个程序在IntelliJ IDEA中运行得很好,但是如果我将它提取到JAR文件中,就会得到一个空白的背景屏幕。为什么呢
我可以在一个JAR文件中包含整个应用程序的图像吗?一个不依赖于其他文件夹的文件夹?您当然可以将图像和代码放在一个jar文件中。图像未加载,或者因为它不在jar文件中,或者因为它不在jar中的路径
/images/backGround.jpg
关于jar文件,您可能不知道的一件有用的事情是:它们是.zip格式的,因此您可以使用任何zip工具查看jar中的内容(暂时将jar文件重命名为.zip可能会使这更容易)。如果图像不存在,请修复您的jar构建(您没有说明如何制作,因此不确定需要更改什么)。如果映像在那里,但位于不同的路径下,则修复jar构建以将其放置在正确的位置,或者更改读取它的路径。是的,您肯定可以将整个应用程序包含到单个jar文件中,即可运行的jar文件中。但我建议您不要将图像包含在jar文件中,而是将该图像路径传递给属性文件,并在图像路径代码中使用该属性文件。这样,即使下次需要更改图像,也只需更改属性文件中的路径,就不必再次导出整个项目。是的,整个应用程序都可以放在一个JAR文件中。创建一个与src文件夹相同级别的资源文件夹,将资源文件夹添加到类路径中,资源为“/background.jpg”。与删除此图像一样,应用程序可以从屏幕上删除图像,但不能从jar中删除。