29

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

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

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

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

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

4

7 回答 7

22

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

于 2013-02-04T11:40:12.160 回答
9

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

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

于 2013-02-04T11:07:26.413 回答
5

如果您使用的是 JDK 13 或更高版本,则可以使用 JDK 中名为jpackage.

jpackage可以为 Linux、Mac 和 Windows 操作系统创建安装程序。

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

jpackage 需要一些第三方免费软件来创建 Windows 包:

* 要创建.exe捆绑包,它使用 Wix

* 要创建.msi捆绑包,它使用 Inno

  • Wix 现在是创建exemsi捆绑的唯一依赖项。

有关 jpackage 的所有详细信息都可以在JEP 343: Packaging Tool中找到。

于 2019-04-24T04:33:02.570 回答
4

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

使用Java Web Start

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

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

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

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

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

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

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

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

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

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

例如

于 2013-02-04T11:50:51.340 回答
1

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

于 2013-02-04T11:31:54.463 回答
1

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

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

于 2013-02-05T09:42:06.927 回答
0

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

于 2021-02-28T23:32:15.327 回答