hum*_*zed 13 java javafx intellij-idea java-11 javafx-11
我按照https://blog.jetbrains.com/idea/2013/03/packaging-javafx-2-applications-in-intellij-idea-121/中的步骤进行操作
但是当我尝试构建工件时,就像在最后一步一样,我得到了这个错误
错误:Java FX Packager:无法构建工件 - fx:deploy在此JDK中不可用
我知道JavaFX已经从java11中删除了我的问题是我应该怎么做才能构建一个.jar
或.exe
这是一个快速测试的hello world应用程序.
以下方法适用于我在 Windows 和 Ubuntu 上使用 IntelliJ 的 OpenJDK 11 和 OpenJFX 11,并成功创建了一个 jar,该 jar 可以java -jar filename.jar
在目标机器上安装 JavaFX 的情况下运行。请记住,JavaFX jar 是平台相关的。所以Windows jar需要在Windows上编译,Linux jar在Linux上编译。
我的主要方法扩展了应用程序...
public class Main extends Application {
Run Code Online (Sandbox Code Playgroud)
因此,首先创建一个类似于 Start.java 的新 Java 类——它链接到原始的 Main 方法。
public class Start {
public static void main(String[] args){
Main.main(args);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你制作 .jar 文件;
文件 > 项目结构 > 工件
单击 + > 选择 JAR > 从具有依赖项的模块
对于 Main 类,选择 Start.java > 单击 Ok
javafx jar 应该自动提取(如果它们不是手动添加的)
单击应用和确定
构建 > 构建工件 > 构建
java -jar filename.jar
即使在没有安装 JavaFX 的机器上,创建的文件也应该可以正常运行。
在Intelij中,不再使用JavafX JAR导出选项。您可以使用“带有依赖项的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
Run Code Online (Sandbox Code Playgroud)
我用这个制作了一个YouTube教程:https : //youtu.be/HGHu-SzL-5E
小智 2
不幸的是,您将无法以这种方式使用 JFX11 构建 jar,因为显然打包器已从 JFX SDK 中删除。希望它能在未来的版本(也许是 12)中实现。阅读此处了解更多详细信息:
https://youtrack.jetbrains.com/issue/IDEA-200721包含以下 2 个链接:
https://bugs.openjdk.java.net/browse/JDK-8212780
https://openjdk.java.net/jeps/343
作为临时解决方案,您可以简单地使用/降级到版本 10,其中仍然包含所需的打包程序。
归档时间: |
|
查看次数: |
6332 次 |
最近记录: |