当前位置: 首页 > 知识库问答 >
问题:

JavaFX应用程序包版本号

宋昕
2023-03-14

我正在使用JDK附带的Oracle工具为JavaFX8应用程序创建一个可安装的包。在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>

您可以在这里的上下文中看到完整的脚本。

在Mac上,右键单击应用程序图标并选择“Get Info”显示1.0而不是正确的版本号,正如您在下面的屏幕截图中所看到的:

我在Mac和Linux上都使用Oracle JDK1.8.0_66。

共有1个答案

潘修为
2023-03-14

我终于解决了。问题似乎是因为我有一个 元素,它的refid属性引用了一个单独的 。解决方案是将这两个 元素组合为一个元素,如下所示:

<fx:application id="VocabHunterId"
                name="VocabHunter"
                mainClass="${mainClass}"
                version="${version}"/>

由于某种原因,我发现必须包含id=“vocabhunterid”属性:没有它,文件关联就无法工作。

我已经对此进行了测试,并且在带有Oracle JDK 1.8.0_77的OS X 10.11.4和带有Oracle JDK 1.8.0_77的Ubuntu 14.04上正确显示了安装的包的版本号,效果很好。如果您想在上下文中看到完整的脚本(包括这个修复),可以在这里找到它。

 类似资料:
  • 几个月来,我一直在开发龙卷风FX应用程序。它在IDE中运行良好(intellij ultimate,win 10),但是现在我需要创建一个实际的可执行罐子供其他人运行它,我似乎无法让它工作。 我正在使用openfx分级插件来自动收集javafx依赖项并提供应用程序/运行任务,这是我在开发过程中一直在使用的。那里的文档还包含组织.beryx.jlink作为此最终打包过程的插件。这是一个龙卷风FX应用

  • 我已经创建了一个JavaFX应用程序,并使用蚂蚁创建了它的本机包。当我试图启动应用程序使用Jar从捆绑创建双击,它成功启动我的应用程序。但是当我试图双击MyApplication.exe(比如说)时,它会抛出JavaFX启动器错误“运行应用程序时异常”。 我比较了两个jre,有很多丢失的jar,exe,dll和一些属性文件我发现。 我有这些环境设置- JAVA_HOME和JREFX_HOME在我的

  • 我最近将Eclipse更新为2019-12版,将JDK更新为JavaSE13版,之后我了解到,这个JSE不再将JavaFX作为核心库。因此,我查找了与JSE13兼容的新JavaFX库的Maven依赖项,并选择了版本11。我将它们添加到我的文件中,如下所示: 但是,现在我的源文件中的一些导入无法解析。例如: 我已经检查了javadocs的类,似乎它们应该包含在、和模块中的类文件中,我在文件中作为依赖

  • 我有一个Java8应用程序,它使用JavaFX,主类扩展了JavaFX.application.application。目前,我将它作为一个fat jar交付,它在Oracle Java8上运行良好。 现在我希望它能够在OpenJDK11上运行。为了添加JavaFX,我已经将org.openjfx中的工件添加到类路径中,并将它们包含在fat JAR中。如果我从命令行启动我的jar,我会得到 脏的一

  • 我已经和这件事斗争了一天多,在SO和其他地方读了很多帖子,但我仍然有问题。 我需要在一个自包含的JavaFX应用程序包中包含我的应用程序图标。我使用的是JDK1.8.0_45及其包含的JavaFX包。我正在使用Maven构建.exe,除了我不能包含我的图标外,它都运行得很好。 下面是我的pom.xml: 使图标出现在标题栏中的是javapackager部署步骤的参数。这一行告诉inno安装程序使用