You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaPackager生成的默认包文件名?

解决JavaPackager自定义Zip包命名(区分带/不带Jre)

核心思路

不修改全局name属性,通过两次独立打包配置分别指定输出文件名,同时保证内部可执行文件的名称一致。

具体实现步骤

1. 打包带Jre的Full包

保持原始name参数(控制内部exe文件名),自定义输出包名并开启Jre打包:

  • 设定name为你需要的内部可执行文件名(比如myapp)
  • 通过artifactName参数指定包名规则为${name}-${version}-${platform}_Full_.zip
  • 开启bundleJre=true配置

以Gradle插件为例的配置代码:

javaPackager {
    name = 'myapp'
    version = '1.0.0'
    platform = 'windows'
    bundleJre = true
    artifactName = "${name}-${version}-${platform}_Full_.zip"
    // 补充其他必要配置:mainClass、jrePath等
}

2. 打包不带Jre的Light包

复制上述配置,仅修改两个关键参数:

  • 将bundleJre设为false
  • 修改artifactName为${name}-${version}-${platform}_Light_.zip

以Gradle独立任务为例的配置代码:

task packageLight(type: JavaPackagerTask) {
    name = 'myapp'
    version = '1.0.0'
    platform = 'windows'
    bundleJre = false
    artifactName = "${name}-${version}-${platform}_Light_.zip"
    // 保持和Full包一致的其他配置:mainClass等
}

3. 执行打包

分别运行两次打包任务,即可得到符合要求的两个包:

  • myapp-1.0.0-windows-Full.zip(内部包含myapp.exe和Jre文件)
  • myapp-1.0.0-windows-Light.zip(内部仅包含myapp.exe)

关键说明

  • 全局name属性仅控制内部可执行文件的名称,全程无需修改,确保两个包内的exe文件名一致
  • 通过artifactName参数直接覆盖默认包命名规则,实现带/不带Jre的包名区分
  • 若使用Maven插件,思路完全一致:在两次打包配置中分别设置artifactName和bundleJre参数即可

内容的提问来源于stack exchange,提问作者lvr123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:10:48