JDK19+JavaFX19环境下JPackage生成MSI安装包失败求助
JDK 19 + JavaFX 19 JPackage打包问题:MSI安装程序缺失
问题描述
- 使用JDK 19搭配JavaFX 19进行JPackage打包时,安装镜像已生成,但最终的MSI安装程序缺失
- 此前使用JDK 18 + JavaFX 16的相同配置可正常完成打包
相关环境变量
Required environment variables: PATH_TO_FX = C:\Java\javafx-19\sdk\lib PATH_TO_FX_MODS = C:\Java\javafx-19\jmods JPackage Version 19
错误日志信息
[2022/11/12 10:46:54.801, jpackage.dll (PID: 5696, TID: 11192), jpackage.cpp:155 (Java_jdk_jpackage_internal_WinExeBundler_embedMSI)] ERROR: Unknown exception caught [10:45:03.636] Running candle.exe [10:45:03.647] Running C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe [10:45:03.784] Running light.exe [10:45:03.788] Running C:\Program Files (x86)\WiX Toolset v3.11\bin\light.exe [10:45:03.989] Detected [candle.exe] version [3.11.2.4516]. [10:45:03.989] Detected [light.exe] version [3.11.2.4516]. [10:45:03.990] WiX 3.11.2.4516 detected. Enabling advanced cleanup action.
解决建议
- 升级WiX工具集版本:JDK 19的jpackage可能与WiX 3.11存在兼容性问题,尝试升级到WiX 3.14或4.x稳定版后重新打包
- 确认JavaFX模块引用:打包命令中需通过
--module-path指定PATH_TO_FX_MODS,并明确添加所需JavaFX模块(如--add-modules javafx.controls,javafx.fxml),避免模块缺失导致打包中断 - 清理临时文件:删除
%TEMP%目录下jpackage生成的缓存文件,排除旧文件干扰 - 启用详细日志:在jpackage命令中加入
--verbose参数,获取更完整的错误输出,定位MSI生成失败的具体环节 - 提升权限执行:以管理员身份运行打包命令,避免因文件写入权限不足导致MSI文件无法生成
内容的提问来源于stack exchange,提问作者Peter Jerkewitz
相关产品推荐
相关产品推荐

