java - 使用 OpenJDK 1.8 的 JavaFX 的 Maven 依赖项

标签 java maven javafx openjfx

环境:

  • 操作系统:为了开发和运行应用程序,将使用安装了 OpenJDK 1.8 和 Maven 的 Windows 10 Pro (1809) 和 Linux(类似于 Ubuntu 或 Debian)。
  • JDK: OpenJDK 1.8
  • 开发环境: IntelliJ Ultimate
  • 构建工具 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。

    问题:
  • 有什么可以添加/更改到我的 pom.xml 的吗?让我的应用程序编译和运行?
  • 我是否绝对需要升级到 OpenJDK 11 或 12?
  • 最佳答案

    首先,一点背景。从 Java 8 到 Java 10,Oracle JDK 曾经与 JavaFX 一起提供。但是,即使在这些版本中,JavaFX 也不是 OpenJDK 的一部分。从 Java 11 开始,JavaFx 也不再是 Oracle JDK 的一部分(就像 OpenJDK 一样)。

    所以,你在做什么错?

    您正在尝试使用 JDK 8 运行 JavaFX 11 和 12。这是不可能的。

    你能做什么?

    获取 openjfx 8。您可以从 source 构建它们或者在 Ubuntu 上通过 sudo-apt 安装它。

    JavaFX 8 是否可用作 Maven 依赖项?

    不是我知道的!

    我的建议.. 如果要使用 Java8 或升级到 Java 11 并使用 openJFX 作为 Maven 依赖项,请使用 Oracle JDK。

    关于java - 使用 OpenJDK 1.8 的 JavaFX 的 Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56332947/

    相关文章:

    java - generic dao methods using hibernate criteria 是错误的,但感觉很对

    java - ControlsFX 电子表格 View : How to set SpreadsheetCell to graphic only?

    java - 为什么 Hibernate 执行 JNDI 查找?

    java - Mybatis SQL 中的递归导致编译时堆栈溢出

    java - 无效类型代码 : 30 java in ObjectInputStream

    java - xml-apis JAR 文件是否必要?

    windows - ConsoleZ maven 颜色输出

    java grpc问题-java.lang.NoClassDefFoundError : io/grpc/BindableService

    java - 我的对象未打印到我的 JavaFX TableView

    java - 如何将外部文件复制到当前运行的jar中?