如何为JavaFX项目生成无需安装程序和JRE的独立.exe可执行文件
你的需求完全可以实现,使用JDK自带的工具即可完成,不需要依赖你提到的launch4j、install4j两类工具。
核心实现逻辑
Java 14及以上版本内置的jpackage工具支持将裁剪后的JRE、JavaFX依赖、项目代码全部封装进单个exe文件,无需额外附属文件,也不需要安装步骤,用户下载后双击即可直接运行,无需预装JRE。
具体操作步骤
- 第一步:确认你的开发环境使用JDK 14或更高版本,
jpackage为JDK内置工具,无需额外下载安装 - 第二步:完成项目模块化配置,编写
module-info.java文件,明确声明项目依赖的JavaFX模块、第三方依赖模块以及项目主类 - 第三步:使用
jlink命令生成项目专属的轻量化裁剪JRE,减少最终exe体积,参考命令:jlink --module-path <JavaFX SDK lib目录路径> --add-modules <项目依赖的所有模块名,多个用逗号分隔> --output ./custom-jre - 第四步:使用
jpackage命令打包生成单个独立exe,参考命令:jpackage --type exe --input <项目jar包存放目录> --main-jar <你的项目jar包名称.jar> --main-class <项目主类全限定名> --runtime-image ./custom-jre --name <生成的exe程序名称> --win-disable-console - 命令执行完成后,即可在输出目录得到单个可执行exe文件
常见问题说明
- 如果你不想手动执行命令,可以直接在IntelliJ IDEA中安装jpackage可视化插件,配置好对应参数后一键完成打包
- 若项目存在第三方依赖,需要先将所有依赖打包进同一个fat jar后再执行打包操作,避免运行时类NotFound错误
- 打包生成的exe首次运行时会自动将内置资源解压到系统临时目录,启动速度几乎和非单文件版本一致,用户无感知
内容的提问来源于stack exchange,提问作者Kotaka Danski
相关产品推荐
相关产品推荐

