「Child process exited with code 1」含义及Jpackage打包exe报错咨询
关于「Child process exited with code 1」报错的说明及排查建议
错误含义
「Child process exited with code 1」表示jpackage调用WIX工具链的子进程(如编译安装包的candle.exe、light.exe等)时,该子进程运行失败并返回了退出码1。这是WIX工具的一般性错误标识,没有直接指向具体问题,需要从参数配置、环境依赖等维度排查。
可能的排查方向
- 验证图标文件:检查
--icon指定的src/main/resources/images/logo.ico路径是否正确,文件是否为Windows标准格式(建议256x256尺寸、32位色深),可临时移除该参数测试是否能正常构建,排除图标问题。 - 确认JAR包完整性:确保
target/mechanical-1.0-SNAPSHOT.jar是可正常运行的完整包,检查JavaFX模块是否正确打包或是否需要通过--module-path指定JavaFX运行时依赖。 - 检查WIX兼容性与配置:确认安装的WIX版本(建议3.11及以上)与JDK17的jpackage兼容,同时WIX的bin目录需添加到系统
PATH环境变量,保证jpackage能正常调用WIX工具。 - 排查权限问题:尝试以管理员身份启动命令行窗口后执行jpackage命令,避免因权限不足导致子进程无法写入临时文件或系统目录。
- 启用详细日志:在jpackage命令中添加
--verbose参数,输出完整过程日志,可定位到具体出错的WIX子进程及对应错误信息,命令示例:jpackage --verbose --name test --input target --main-jar mechanical-1.0-SNAPSHOT.jar --icon src/main/resources/images/logo.ico --vendor J --win-dir-chooser --win-shortcut --win-menu-group "test" --win-menu
内容的提问来源于stack exchange,提问作者HawkinHu
相关产品推荐
相关产品推荐

