javapackager 中损坏的 -Bmac.CFBundleVersion 选项

Broken -Bmac.CFBundleVersion option in javapackager

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

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

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

从菜单栏中的 "About Application" 项打开的弹出窗口 window 显示以下字符串:

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 开发工具包 8 的旧版本(更新 25)。我从 Oracle 网站(jdk-8u121- macosx-x64.dmg) 它解决了问题。谢谢@Nicolas Filotto。