使用 java11 构建和部署 javafx 应用程序

2022-09-02 01:38:35

我按照 https://blog.jetbrains.com/idea/2013/03/packaging-javafx-2-applications-in-intellij-idea-121/ 中的步骤操作

但是当我尝试在最后一步中构建工件时,我得到这个错误

enter image description here

错误:Java FX 打包程序:无法构建工件 - fx:deploy 在此 JDK 中不可用

enter image description here

我知道JavaFX已经从java11中删除了,我的问题是我应该做些什么来构建一个或.jar.exe

这是一个用于快速测试的hello world应用程序


答案 1

使用 JavafX JAR 导出选项在 Intelij 中不再有效。您可以将其导出为带有“具有依赖项的Jar-From模块”的常规jar。这将导出一个有效的Jar,但为了运行它,您需要将javaFx路径和模块添加到命令中。

拥有 jar 后,run 命令应如下所示:

java --module-path PATH_TO_YOUR_JAVAFX_LIB_FOLDER --add-modules javafx.controls,javafx.fxml,javafx.graphics,javafx.web -jar yourJar.jar

我用这个做了一个youtube教程:https://youtu.be/HGHu-SzL-5E


答案 2

下面的方法适用于Windows和Ubuntu上的OpenJDK 11和OpenJFX 11,使用IntelliJ,并成功创建了一个jar,只需在目标计算机上安装JavaFX即可运行。请记住,JavaFX jars 依赖于平台。因此,Windows jar需要在Windows上编译,Linux jar需要在Linux上编译。java -jar filename.jar

我的主要方法扩展了应用程序...

public class Main extends Application {

因此,首先创建一个新的Java类,类似于Start.java - 这链接到原始的Main方法。

public class Start {
    public static void main(String[] args){
        Main.main(args);
    }
}

然后制作.jar文件;

文件>项目结构>工件

单击 + >从具有依赖项的模块中选择 JAR >

对于主类,选择“开始.java >单击”确定”

javafx jar应该自动提取(如果它们不是手动添加的)

单击应用和确定

构建>构建项目>构建

创建的文件即使在未安装 JavaFX 的机器上也应该运行良好。java -jar filename.jar


推荐