繁体   English   中英

为 Java 桌面应用程序创建安装程序

[英]Creating an installer for Java desktop application

我知道这个问题已经被问过很多次了,而且一直有一个答案说使用可执行 jar 或使用 launch4j 或类似的应用程序制作 .exe。

我可能听起来像个新手,实际上我是。

我一直在用 Java 项目尝试一些东西。 我已经成功地制作了一个可执行的 jar 和一个 .exe 文件。 感谢您之前在 SO 中的回答:)

但是,我想为 Windows 创建一个安装程序。 例如,按 Next 2 - 3 次(显示所有条款和条件等),然后用户指定一个位置(例如 C:\\Program Files\\New Folder\\My App),然后是我的 .exe、lib 文件夹、img文件夹,其他重要文件夹与 .exe 文件一起粘贴到目标文件夹中,然后在桌面上创建快捷方式。

关于如何实现这一目标的任何指示?

我已经使用InnoSetup很长时间了。 它一直工作得很好。 它可以做你需要的一切(解包文件、在桌面上放置快捷方式、开始菜单等)并生成我们习惯的安装程序。

如果你想要免费和开源,你可以看看IzPack 我们在工作中使用它在我们的构建器中提供命令行支持。

您还可以看看install4j ,这是我们之前反复试用过的商业产品(但在花钱方面,您往往想知道自己得到了想要的东西;))

编辑:我将把它留在这里以供参考,但请注意:浏览器制造商删除了启动 JWS 和小程序所需的 Java 插件,并且两者都在 Java 9 中被弃用并从 API 中删除。

使用Java Web Start

例如,按 Next 2 - 3 次(显示所有条款和条件等)

JNLP API 的ExtensionInstallerService提供了这一点。 这是一个演示。 安装服务

..然后用户指定一个位置(如 C:\\Program Files\\New Folder\\My App),..

ExtensionInstallerService提供了一个方法getInstallPath() ,该方法......

返回推荐安装程序安装扩展的目录。安装程序不需要安装在这个目录中,这只是一个建议的路径。

这与您所要求的并不完全相同,但是我认为允许用户进行这种级别的控制通常是一个坏主意。

然后我的 .exe、lib 文件夹、img 文件夹、其他重要文件夹与 .exe 文件一起粘贴到目标文件夹中。

JWS 会在需要时自动安装 JNLP 中提到的资源。 此外,如果服务器上的档案发生变化,它会更新资源。

然后在桌面上创建一个快捷方式。

JWS 可以在受支持的系统上提供桌面快捷方式和菜单项。

例如

如果您使用的是 JDK 13 或更高版本,则可以使用 JDK 中名为Jpackage的默认打包工具打包任何 Java 程序及其运行时。 这可以固有地为 Linux、Mac 和 Windows 操作系统创建安装程序。

该工具的 EA 已经作为JDK的一部分提供。

您可以使用jlink创建特定的运行时。

Jpackage 需要一些 3rd 方免费软件来创建 Windows 包:

  • 要创建.exe包,它使用 Wix
  • 要创建.msi包,它使用 Inno

关于 Jpackage 的所有细节都可以在JEP 343: Packaging Tool 中找到

几个月前我也处于同样的情况。 尝试了很多之后。 我建议 NSIS。 Eclipse EclipseNSIS有一个很好的插件,带有一些模板。 只需单击几下即可获得基本安装程序,这很有帮助。 如果生成的代码不够用,您可以通过编码来完成剩下的工作,但大部分代码是由 EclipseNSIS 生成的。

您还可以使用高级安装程序 由于您已经有一个 EXE 来启动您的 JAR,您不需要使用 Advanced Installer 的 Java Launcher 支持,您可以创建一个Simple 项目,该项目在免费版中可用,因此您无需购买执照。

您最多需要 10 分钟来安装它并创建安装包,因为您会发现学习使用它非常容易。

使用 Launch4j 创建 exe 文件。 您必须提供 jre 文件夹的相对路径。 接下来使用 Inno Setup 进行设置。 您可以在安装程序中捆绑 jre。 我用过它,它的作用就像魔法一样。 我可以显示详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM