JavaFx模块化项目通过jpackage打包成exe

 首先通过IDEA 创建一个 JavaFx 项目,我选择的的版本是JDK17 支持模块化,通过idea创建自动配置,方便很多。

1.maven 插件 :javafx-jlink 构建成独立运行模块。

jlink 是一个用于创建自定义 JRE(Java Runtime Environment)的工具,它允许你只包含应用程序运行所需的 Java 模块。

运行完成效果如下:

在bin目录下可通过app.bat 启动,启动时还带有命令窗口。

2.基于上一步打包成app-image 镜像

在targert目录下载执行命令,参数解释在文章最后。

jpackage --name HelloWorld --type app-image -m com.example.javafxdemo/com.example.javafxdemo.HelloApplication --runtime-image .\app\

 生成helloworld文件夹和可执行exe文件

3.根据上一步镜像打包可安装的msi或者exe

下面的步骤需要安装WiX Toolset 工具

官网:WiX Toolset,安装教程网上有,灰常简单。

jpackage --type msi -n HelloWorld --app-image .\HelloWorld\ --dest .\Install --win-dir-chooser --win-menu --win-menu-group HelloWorld --win-shortcut --app-version 1.0

构建成一个可安装的msi文件,大小27MB

  1. --type: 指定打包类型。常见的值包括 exe(Windows 可执行文件)、msi(Windows 安装程序)、dmg(macOS 磁盘映像)、pkg(macOS 安装程序包)、deb(Debian 系统的安装包)、rpm(Red Hat 系统的安装包)。你使用的是 exe,表示你要生成一个 Windows 可执行文件。

  2. -n--name: 指定生成的应用程序的名称。例如,-n HelloWorld 表示生成的安装程序名称是 HelloWorld

  3. --app-image: 指定包含应用程序的目录或 JAR 文件的位置。此目录应该包含应用程序的所有必要文件和资源。

  4. --dest: 指定生成的安装程序和相关文件的输出目录。例如,--dest .\build\jpackage-installer-dir 指定将生成的文件放在 .\build\jpackage-installer-dir 目录中。

  5. --win-dir-chooser: 在 Windows 平台上,启用目录选择器,允许用户在安装时选择安装目录。如果不使用这个选项,安装程序将会使用默认目录。

  6. --win-menu: 在 Windows 平台上,创建开始菜单快捷方式。如果不使用此选项,安装程序不会创建开始菜单快捷方式。

  7. --win-menu-group: 指定在开始菜单中创建的程序组名称。例如,--win-menu-group JavaFXSample 将在开始菜单中创建名为 JavaFXSample 的程序组。

  8. --win-shortcut: 在 Windows 平台上,创建桌面快捷方式。如果不使用此选项,安装程序不会在桌面上创建快捷方式。

  9. --runtime-image 选项用于指定包含精简 JDK 的镜像目录。这不包含应用程序本身,只包含运行该应用程序所需的 JDK 环境。通常,你需要一个单独的 --app-image 目录来配合这个选项来创建最终的安装包。
  10. --app-version: 指定应用程序的版本号。
  11. --icon: 指定应用程序的图标文件。对于 Windows,通常是 .ico 文件;对于 macOS,通常是 .icns 文件。
  12. --java-options: 传递 Java 选项给应用程序的 JVM。
  13. --module-path: 指定模块路径(用于模块化应用程序)。
  14. --verbose: 启用详细模式以输出更多的调试信息。

更多命令可以通过jpackage --help查看

参考教程:GitHub - JavaFX-Starter/JavaFX-Package-Sample: JavaFX17 打包示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值