环境:
问题:
我知道,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[...]
。
在Maven <version>
内部,最低的<dependency>
似乎可以使用11。
问题:
pom.xml
中添加/更改某些内容,以使应用程序得以编译和运行?答案 0 :(得分:1)
首先,有一点背景知识。从Java 8到Java 10,Oracle JDK曾经随JavaFX一起提供。但是,即使在这些版本中,JavaFX也不属于OpenJDK。从Java 11开始,JavaFx也不是Oracle JDK的一部分(与OpenJDK一样)。
那么,您在做什么错了?
您正尝试在JDK 8上运行JavaFX 11和12。这是不可能的。
你能做什么?
获取openjfx8。您可以从source构建它们,也可以通过sudo-apt在Ubuntu上进行安装。
JavaFX 8是否可以作为Maven依赖项使用?
不是我所知道的!
我的建议。如果要使用Java8或升级到Java 11并使用openJFX作为Maven依赖项,请使用Oracle JDK。