我正在使用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。
我终于解决了。问题似乎是因为我有一个
元素,它的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安装程序使用