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

如何修改jpackage生成的MSI安装对话框的显示文本?

问题

使用JDK 21版本的jpackage生成了jDiskMark-0.5.1.msi,执行脚本如下:

set VERSION=0.5.1
set JPKG_EXE="C:\Program Files\java\jdk-21\bin\jpackage"

%JPKG_EXE% --type msi --input jdiskmark-v%VERSION% --main-jar jDiskMark.jar ^
    --name jDiskMark-%VERSION% --app-version %VERSION% ^
    --vendor "jdiskmark.net" --win-console --win-menu

运行该安装程序时,对话框中显示类似“2a243a02.msi”的随机文件名,与用户双击运行的jDiskMark-0.5.1.msi不符,易造成混淆。希望修改该显示内容(比如改为启动文件名,或参考Microsoft Orca显示“Microsoft Windows”),但尝试jpackage的--description选项无效,询问该字段名称及设置方法。

解决方案

这个显示的字段对应MSI安装包中的PackageName属性,以下是两种设置方法:

方法一:直接使用jpackage的--win-property参数

JDK 21的jpackage支持通过--win-property参数直接设置MSI的内部属性,只需在原有命令中添加指定PackageName的配置即可。修改后的脚本示例:

set VERSION=0.5.1
set JPKG_EXE="C:\Program Files\java\jdk-21\bin\jpackage"

%JPKG_EXE% --type msi --input jdiskmark-v%VERSION% --main-jar jDiskMark.jar ^
    --name jDiskMark-%VERSION% --app-version %VERSION% ^
    --vendor "jdiskmark.net" --win-console --win-menu ^
    --win-property PackageName=jDiskMark-0.5.1.msi

你可以将jDiskMark-0.5.1.msi替换为任意想要显示的文本,比如"jDiskMark 安装程序"。

方法二:使用MSI转换文件(.mst)

如果需要更复杂的MSI自定义,可通过转换文件实现:

  1. 先用原始jpackage命令生成MSI文件
  2. 使用Windows SDK中的Orca工具打开该MSI,找到Property表,修改PackageName字段的值为目标文本
  3. 在Orca中导出转换文件(.mst格式)
  4. 在jpackage命令中添加--win-msi-transform your-transform-file.mst参数,指定转换文件路径

重新生成MSI后,运行安装程序时,对话框就会显示你设置的PackageName内容,不再是随机文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:03:34