JavaFX 应用程序包版本号
JavaFX Application Bundle Version Number
我正在使用 JDK 附带的 Oracle 工具为 JavaFX 8 应用程序创建可安装包。在 Mac 上创建了一个 .dmg
文件,在 Linux 上使用了一个 .deb
文件。我从 Gradle 调用 Ant 脚本来创建包。我遇到的问题是捆绑包中包含的版本号始终为 1.0 而不是我指定的版本。 Ant脚本相关部分如下:
<project name="VocabHunter Packaging" basedir=""
xmlns:fx="javafx:com.sun.javafx.tools.ant">
<target name="jfxbundle" description="Build the application bundle">
<fx:deploy outdir="${basedir}/build"
nativeBundles="${packageType}">
<fx:application refId="VocabHunterId"
version="${version}"/>
<fx:bundleArgument arg="mac.CFBundleVersion"
value="${version}"/>
...
</fx:deploy>
...
</target>
...
</project>
您可以在上下文中查看完整脚本 here。
在 Mac 上,右键单击应用程序图标并选择“获取信息”显示 1.0 而不是正确的版本号,如下面的屏幕截图所示:
同样,在 Linux 上,版本号在安装 .deb
文件期间显示为 1.0:
有谁知道如何修复 Ant 脚本以便显示正确的版本?
我在 Mac 和 LInux.
上都使用 Oracle JDK 1.8.0_66
查看 Ant task reference,表明在 fx:application
上提到了版本属性。
您可能会在清单中定义版本,但我不确定这是否会以所需的方式显示。
我终于解决了这个问题。这个问题看起来是由我有一个 <fx:application>
元素和一个 refid
属性引用单独的 <fx:application>
的事实引起的。解决方案是将这两个 <fx:application>
元素合并为一个元素,如下所示:
<fx:application id="VocabHunterId"
name="VocabHunter"
mainClass="${mainClass}"
version="${version}"/>
我发现出于某种原因我必须包含 id="VocabHunterId"
属性:没有它文件关联不起作用。
我已经测试过了,它可以很好地显示 OS X 10.11.4 和 Oracle JDK 1.8.0_77 上已安装包的版本号Ubuntu 14.04 也与 Oracle JDK 1.8.0_77。如果您想在上下文中查看完整脚本(包括此修复程序),可以找到它 here.
我正在使用 JDK 附带的 Oracle 工具为 JavaFX 8 应用程序创建可安装包。在 Mac 上创建了一个 .dmg
文件,在 Linux 上使用了一个 .deb
文件。我从 Gradle 调用 Ant 脚本来创建包。我遇到的问题是捆绑包中包含的版本号始终为 1.0 而不是我指定的版本。 Ant脚本相关部分如下:
<project name="VocabHunter Packaging" basedir=""
xmlns:fx="javafx:com.sun.javafx.tools.ant">
<target name="jfxbundle" description="Build the application bundle">
<fx:deploy outdir="${basedir}/build"
nativeBundles="${packageType}">
<fx:application refId="VocabHunterId"
version="${version}"/>
<fx:bundleArgument arg="mac.CFBundleVersion"
value="${version}"/>
...
</fx:deploy>
...
</target>
...
</project>
您可以在上下文中查看完整脚本 here。
在 Mac 上,右键单击应用程序图标并选择“获取信息”显示 1.0 而不是正确的版本号,如下面的屏幕截图所示:
同样,在 Linux 上,版本号在安装 .deb
文件期间显示为 1.0:
有谁知道如何修复 Ant 脚本以便显示正确的版本?
我在 Mac 和 LInux.
上都使用 Oracle JDK 1.8.0_66查看 Ant task reference,表明在 fx:application
上提到了版本属性。
您可能会在清单中定义版本,但我不确定这是否会以所需的方式显示。
我终于解决了这个问题。这个问题看起来是由我有一个 <fx:application>
元素和一个 refid
属性引用单独的 <fx:application>
的事实引起的。解决方案是将这两个 <fx:application>
元素合并为一个元素,如下所示:
<fx:application id="VocabHunterId"
name="VocabHunter"
mainClass="${mainClass}"
version="${version}"/>
我发现出于某种原因我必须包含 id="VocabHunterId"
属性:没有它文件关联不起作用。
我已经测试过了,它可以很好地显示 OS X 10.11.4 和 Oracle JDK 1.8.0_77 上已安装包的版本号Ubuntu 14.04 也与 Oracle JDK 1.8.0_77。如果您想在上下文中查看完整脚本(包括此修复程序),可以找到它 here.