使用JPackage(Java15)无法创建Windows x86安装程序求助
以下是针对你遇到的问题的具体解决步骤:
确认JDK架构正确性
打开命令行执行java -version,输出必须明确显示32-Bit(比如Zulu的输出会包含Zulu15.30+15-CA (build 15.0.2+7, mixed mode, sharing, 32-bit))。同时要确保调用的jpackage是x86 JDK目录下的可执行文件(例如C:\Program Files (x86)\Zulu\zulu-15\bin\jpackage.exe),避免系统PATH中优先调用了x64版本的JDK工具。显式指定jpackage架构参数
执行jpackage时必须添加--arch x86参数,示例命令如下:jpackage --type exe --arch x86 --input ./target --main-jar your-app.jar --name YourApp --main-class com.yourcompany.YourMainClass该参数会强制jpackage调用对应架构的WiX工具链。
匹配WiX工具链架构
jpackage依赖WiX Toolset生成Windows安装包,你必须安装x86版本的WiX Toolset(不要安装x64版本)。安装完成后,确保x86 WiX的bin目录(例如C:\Program Files (x86)\WiX Toolset v3.11\bin)位于系统PATH最前端,或者直接用--win-wix-path参数指定路径:jpackage --type exe --arch x86 --win-wix-path "C:\Program Files (x86)\WiX Toolset v3.11\bin" --input ./target --main-jar your-app.jar --name YourApp --main-class com.yourcompany.YourMainClass解决"缺少Intelx64文件"的问题
这个错误通常源于WiX与JDK架构不匹配,按以下步骤处理:- 卸载所有x64版本的WiX Toolset
- 重新安装x86版本的WiX(推荐v3.11版本,与JDK15兼容性更好)
- 清理系统PATH中残留的x64 WiX路径,只保留x86版本的路径
- 重启命令行窗口后重新执行jpackage命令
验证日志参数
重新运行jpackage时添加--verbose参数,查看日志中调用candle.exe的参数是否为-arch x86。如果仍显示x64,检查PATH中的JDK和WiX路径顺序,确保x86版本工具优先被调用。
内容的提问来源于stack exchange,提问作者N Dorigatti

