我可以将整个应用程序放在一个 JAR 文件中吗?
Can I have my entire application in a single JAR file?
我不太明白 Swing 应用程序的创建究竟是如何工作的。
我创建了一个从路径获取背景图像的简单应用程序。
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);
它有效,所以我决定制作一个独立于 Java 文件夹中的更改(例如删除此图像)的 JAR 文件,并将图像放入 src - images ( package ) 中。不过不知道可不可以。
我开始得到这样的背景图片。
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/images/backGround.jpg"));
该程序在 IntelliJ IDEA 中运行完美,但如果我将其解压缩到 JAR 文件,我会得到一个空白的背景屏幕。这是为什么?
我可以将包含图像的整个应用程序放在一个 JAR 文件中吗?一个不依赖于其他文件夹的?
您当然可以将图像和代码放在一个 jar 文件中。图像未加载,因为它不在 jar 文件中,或者因为它不在 jar 中的路径 /images/backGround.jpg
。
关于 jar 文件的一个您可能不知道的有用的事情:它们是 .zip 格式,因此您可以使用任何压缩工具查看 jar 中的内容(暂时将 jar 文件重命名为 .zip 可能会使这个更轻松)。如果图像不存在,请修复您的 jar 构建(您没有说明您是如何制作的,所以不确定您需要更改什么)。如果图像在那里但在不同的路径下,则修复 jar 构建以将其放在正确的位置,或者更改您从中读取它的路径。
是的,您绝对可以将整个应用程序包含到单个 jar 文件中,即 Runnable jar 文件。但我建议您不要将图像包含在 jar 文件中,而是将该图像路径传递给 属性 文件并在代码中使用该 属性 文件作为图像路径。因此,即使下次您需要更改图像,您只需更改 属性 文件中的路径,而不必再次导出整个项目。
我不太明白 Swing 应用程序的创建究竟是如何工作的。 我创建了一个从路径获取背景图像的简单应用程序。
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);
它有效,所以我决定制作一个独立于 Java 文件夹中的更改(例如删除此图像)的 JAR 文件,并将图像放入 src - images ( package ) 中。不过不知道可不可以。
我开始得到这样的背景图片。
ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/images/backGround.jpg"));
该程序在 IntelliJ IDEA 中运行完美,但如果我将其解压缩到 JAR 文件,我会得到一个空白的背景屏幕。这是为什么?
我可以将包含图像的整个应用程序放在一个 JAR 文件中吗?一个不依赖于其他文件夹的?
您当然可以将图像和代码放在一个 jar 文件中。图像未加载,因为它不在 jar 文件中,或者因为它不在 jar 中的路径 /images/backGround.jpg
。
关于 jar 文件的一个您可能不知道的有用的事情:它们是 .zip 格式,因此您可以使用任何压缩工具查看 jar 中的内容(暂时将 jar 文件重命名为 .zip 可能会使这个更轻松)。如果图像不存在,请修复您的 jar 构建(您没有说明您是如何制作的,所以不确定您需要更改什么)。如果图像在那里但在不同的路径下,则修复 jar 构建以将其放在正确的位置,或者更改您从中读取它的路径。
是的,您绝对可以将整个应用程序包含到单个 jar 文件中,即 Runnable jar 文件。但我建议您不要将图像包含在 jar 文件中,而是将该图像路径传递给 属性 文件并在代码中使用该 属性 文件作为图像路径。因此,即使下次您需要更改图像,您只需更改 属性 文件中的路径,而不必再次导出整个项目。