在macOS上,在Oracle -Bmac.CFBundleVersion=<value>实用程序的documentation中指定的命令行选项javapackager不起作用。

我正在使用以下命令从Application.app创建磁盘映像Application.jar

javapackager \
  -deploy \
  -native image \
  -srcfiles Application.jar \
  -outdir dist \
  -outfile Application \
  -appclass Application \
  -BappVersion=2.0 \
  -Bmac.CFBundleVersion=2.0.0 \
  -BjvmOptions=-Dapple.laf.useScreenMenuBar=true


从菜单栏中的“关于应用程序”项打开的弹出窗口显示以下字符串:

Application

Version 2.0 (100)


代替

Application

Version 2.0 (2.0.0)


当我检查生成的Application.app/Contents/Info.plist文件时,看到javapackager正确读取了命令行选项-BappVersion=2.0来设置键CFBundleShortVersionString的值,但是却无法读取命令行选项-Bmac.CFBundleVersion=2.0.0来设置键CFBundleVersion的值:

<key>CFBundleShortVersionString</key>
<string>2.0</string>
<key>CFBundleVersion</key>
<string>100</string>

最佳答案

我使用的是Java SE Development Kit 8的旧版本(更新25)。我从Oracle网站(jdk-8u121-macosx-x64.dmg)下载并安装了最新版本(更新121),它解决了问题。谢谢@Nicolas Filotto。

07-26 08:17