首页 > 解决方案 > 通过示例在 Windows 10 机器上安装 Java 可执行文件

问题描述

我想一些具有在 Windows 桌面上交付 Java 应用程序经验的 Java 大师将能够胜任这一点。我一直是 Mac/Linux Java 开发人员,所以这对我来说是未知领域:-/。

我必须编写一个 Java 8 Swing 应用程序并将其安装在 Windows 10(64 位)机器上。我的游戏计划是将应用程序打包为可执行 JAR 并使用Launch4J进行包装,使其看起来像本机 Windows EXE(.exe 文件)。然而,它比分发时更复杂一点:

假设机器上已经安装了 Java 8 JRE/JDK,所以我们不需要担心安装 Java 本身。

安装过程必须简单,包括:

  1. 从机器上完全删除旧版本(以及它的所有其他工件,如日志文件、配置/属性文件、用户指南等)
  2. 在 Windows 10 默认位置安装新版本,或允许用户指定其他位置

此外,如果可能的话,我希望安装过程包括:

  1. 要求检查最小内存和磁盘空间、操作系统版本信息/兼容性(即确保其安装在 Windows 10 上等)
  2. 提供易于使用的向导,例如用户可以单击的 MSI
  3. 可选择安装用户桌面的快捷方式

鉴于这一切,我想知道在现代 Windows 10/Java/Launch4J 环境中我的选择是什么。是否有工具可以帮助我快速编写 MSI 脚本,或者我是否必须在 C#/.NET 中编写自己的脚本并将其作为单独的二进制文件/项目?如果 MSI 不是一个选项,那么存在哪些选项可能会击中我上面的所有子弹?

我意识到我可以将整个内容作为 ZIP 分发,并让安装过程看起来像:

  1. 将 ZIP 保存到用户机器上的某个位置,例如桌面
  2. 手动将前一个应用程序及其工件移至回收站
  3. 解压缩新的 ZIP

然而,这感觉很笨拙,我正在寻找更专业的东西。这里有什么解决方案吗?

标签: javajava-8windows-installer

解决方案


JDK 8 捆绑了一个名为javapackager(以前称为javafxpackager)的工具,它是 JavaFX 的一部分。但是,您可以使用它打包 java swing 应用程序而不使用 JavaFX。该工具可以生成包含应用程序和 Java 运行时的安装程序文件(exe或)。msi

这是一个例子:

javapackager -deploy -native exe -Bruntime="C:\Program Files\Java\jdk1.8.0_66\jre" -Bicon=app_icon.ico -BsystemWide=true -BshortcutHint=true -outdir packages -outfile appFile -srcdir dist -srcfiles MyApp.jar;COPYING.txt -appclass somePackage.MainClass -BlicenseFile=COPYING.txt -name appName -title "应用程序名称"

有关更多信息,请参阅使用 javapackager 添加图标到捆绑包


还有一个名为的新工具jpackage,它基于javapackager. 建议与下一个 JDK 版本 JDK 14 一起发布。请注意,javapackager作为 JavaFX 删除的一部分,自 JDK 11 以来已从 JDK 中删除。

查看使用早期访问 jpackage 实用程序的简要示例


推荐阅读