使用 OpenJDK 1.8 的 JavaFX 的 Maven 依赖项
Maven dependency for JavaFX using OpenJDK 1.8
环境:
- OS: 对于开发和 运行 应用程序,Windows 10 Pro (1809) 和 Linux (类似于 Ubuntu 或 Debian)安装了 OpenJDK 1.8 和 Maven。
- JDK:开JDK1.8
- IDE: IntelliJ 旗舰版
- 构建工具 Maven(多模块项目,一个模块使用JavaFX)
- 我非常不希望使用任何具有付费许可证的东西(尽管对于这个项目,我可能可以免费使用 Oracle JDK...)。
问题:
我知道,JDK 1.8 应该包含 JavaFX。然而,对于 OpenJDK 1.8,不知何故,情况似乎并非如此(没有 Maven 依赖项,IntelliJ 不接受 import javafx.application.Application;
或任何其他 JFX 导入)。
出于这个原因,我试图将其作为 Maven 依赖项包含在内。如果我使用:
<!-- JavaFX -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
.
.
.
我收到以下错误消息:
Error:(3, 26) java: cannot access javafx.application.Application
bad class file: /C:/Users/kaspa/.m2/repository/org/openjfx/javafx-
graphics/11/javafx-graphics-11-win.jar!/javafx/application/Application.class
class file has wrong version 54.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the
classpath.
使用 <version>12</version>
得到 [...]wrong version 55.0, should be 52.0[...]
.
最低<version>
,Maven里面的<dependency>
,我好像能用bo 11.
问题:
- 有什么我可以 add/change 我的
pom.xml
来编译我的应用程序和 运行 吗?
- 我是否绝对需要升级到 OpenJDK 11 或 12?
首先,介绍一下背景。从 Java 8 到 Java 10,Oracle JDK 曾经与 JavaFX 一起提供。但是,即使在这些版本中,JavaFX 也不是 OpenJDK 的一部分。从 Java 11 开始,JavaFx 也不是 Oracle JDK 的一部分(与 OpenJDK 一样)。
所以,你做错了什么?
您正在尝试 运行 JavaFX 11 和 12 与 JDK 8。 这是不可能的。
你能做什么?
获取 openjfx 8。您可以从 source 构建它们,也可以通过 sudo-apt 在 Ubuntu 上安装它们。
JavaFX 8 是否可用作 Maven 依赖项?
我不知道!
我的建议.. 如果您想使用 Java8 或升级到 Java11 并使用 openJFX 作为 Maven 依赖项,请使用 Oracle JDK。
环境:
- OS: 对于开发和 运行 应用程序,Windows 10 Pro (1809) 和 Linux (类似于 Ubuntu 或 Debian)安装了 OpenJDK 1.8 和 Maven。
- JDK:开JDK1.8
- IDE: IntelliJ 旗舰版
- 构建工具 Maven(多模块项目,一个模块使用JavaFX)
- 我非常不希望使用任何具有付费许可证的东西(尽管对于这个项目,我可能可以免费使用 Oracle JDK...)。
问题:
我知道,JDK 1.8 应该包含 JavaFX。然而,对于 OpenJDK 1.8,不知何故,情况似乎并非如此(没有 Maven 依赖项,IntelliJ 不接受 import javafx.application.Application;
或任何其他 JFX 导入)。
出于这个原因,我试图将其作为 Maven 依赖项包含在内。如果我使用:
<!-- JavaFX -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
.
.
.
我收到以下错误消息:
Error:(3, 26) java: cannot access javafx.application.Application
bad class file: /C:/Users/kaspa/.m2/repository/org/openjfx/javafx-
graphics/11/javafx-graphics-11-win.jar!/javafx/application/Application.class
class file has wrong version 54.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the
classpath.
使用 <version>12</version>
得到 [...]wrong version 55.0, should be 52.0[...]
.
最低<version>
,Maven里面的<dependency>
,我好像能用bo 11.
问题:
- 有什么我可以 add/change 我的
pom.xml
来编译我的应用程序和 运行 吗? - 我是否绝对需要升级到 OpenJDK 11 或 12?
首先,介绍一下背景。从 Java 8 到 Java 10,Oracle JDK 曾经与 JavaFX 一起提供。但是,即使在这些版本中,JavaFX 也不是 OpenJDK 的一部分。从 Java 11 开始,JavaFx 也不是 Oracle JDK 的一部分(与 OpenJDK 一样)。
所以,你做错了什么?
您正在尝试 运行 JavaFX 11 和 12 与 JDK 8。 这是不可能的。
你能做什么?
获取 openjfx 8。您可以从 source 构建它们,也可以通过 sudo-apt 在 Ubuntu 上安装它们。
JavaFX 8 是否可用作 Maven 依赖项?
我不知道!
我的建议.. 如果您想使用 Java8 或升级到 Java11 并使用 openJFX 作为 Maven 依赖项,请使用 Oracle JDK。