oracle JDK 8 中的 JavaFx 是否与 openjfx 8 版本相同? oracle jdk 8中的javafx和openjfx8有什么关系?

标签 java javafx openjfx

我们正在从 Oracle jdk8 迁移到 OpenJDK 8。但是我们的系统有 JavaFX 代码,需要从 JavaFX 迁移到 OpenJFX。
我想知道Oracle jdk8中的JavaFX和openjfx8是什么关系。谁能为我解释一下?

最佳答案

Oracle 非捆绑和开源 JavaFX 库
Oracle 将自己的 JavaFX 实现与其 Oracle JDK 产品的 Java 8 版本捆绑在一起。
后来,Oracle 停止了该捆绑包。
OpenJFX 项目
大约在同一时间,Oracle 开源了其 JavaFX 实现,使该源代码成为 OpenJDK 项目的子项目。该子项目称为 OpenJFX(因为 Oracle 保留对其“Java”品牌的商业权利)。见 its GitHub page , 和 its OpenJDK wiki page .
Oracle 现在与 Gluon 共享 OpenJFX 开发的领导地位公司。 Gluon 销售支持、附加库的许可和服务。 Oracle 也可能出售支持服务。
OpenJFX 正在积极开发中。主要版本与 Java 的每个主要版本大约同时发布。 Java 17本月(2021-09)发布,OpenJFX 17 version is already available . JavaFX 17 需要 JDK 11 或更高版本。见 Release Notes for JavaFX 17 .
有关更多信息和开发人员文档,请参阅 OpenJFX 站点:https://openjfx.io/
Oracle JDK 是从 OpenJDK 构建的
你说:

We are moving from oracle jdk8 to openjdk 8


Oracle JDK 产品基于 OpenJDK。 Oracle 已 promise 在它们之间实现功能对等。唯一的区别是 (a) Oracle 出售对 Oracle JDK 的支持,并在用于生产(但不用于开发和测试)时收取费用,以及 (b) Oracle 保留立即将任何必要的修复程序直接发送给其付费客户的权利无需等待修复程序通过 OpenJDK 流程。
部署 JavaFX/OpenJFX 库的选项
当前版本的 Oracle JDK 不再捆绑 JavaFX 库。因此,无论您选择哪种 Java 发行版(Pivotal、Azul Systems、Microsoft、SAP、Amazon、BellSoft、Oracle、Red Hat/IBM、Adoptium/AdoptOpenJDK 等),您都需要解决提供必要 OpenJFX 的问题图书馆。
一种选择是将库与您的应用程序捆绑在一起。新的 jlink 和 jpackage 工具可能会有所帮助。
  • JEP 282: jlink: The Java Linker
  • JEP 392: Packaging Tool

  • 另一种选择是将 OpenJFX 库的副本放在用户机器的类路径上。
    第三种选择是使用包含 OpenJFX 库的 JDK 发行版。至少有两家公司提供了包括 OpenJFX 在内的 JDK 发行版的变体:Azul Systems 和 BellSoft。
    OpenJFX 从版本 11 开始
    你说:

    But our system has javafx code, which needs migrate from javafx to openjfx?


    我只看到编号为 11 到 18 的 OpenJFX 版本。只有 OpenJFX 11 和 17 将获得长期支持。
    他们为 OpenJFX 推荐 Java 16,最低要求是 Java 11。因此您可能无法将基于 Java 8 的项目迁移到 OpenJFX。
    建议:迁移到版本 17
    Java 17本月到期,预计将被指定为 long-term support (LTS)版本。我建议您考虑将 Java 8 应用程序更新到 Java 17 和 OpenJFX 17。自版本 8 以来,Java 和 JavaFX 都取得了突飞猛进的发展。
    先学习Answer by jewelsea通过各种版本的 JavaFX 和 OpenJFX 讨论技术变化。然后仔细阅读两个产品线的所有发行说明,记录您的应用程序的任何潜在问题。那就试试吧。尝试转换,看看会出现什么问题。尝试修复它们。如果你最终成功,你就会为 future 做好准备。
    资源
    您可能需要阅读这些白皮书:
  • Java Client Roadmap Update作者:甲骨文 (2020-05)
  • Java Is Still Free作者:Java Champions (2019-03)
  • Oracle Java SE Support Roadmap由 Oracle (2021-04)
  • 关于oracle JDK 8 中的 JavaFx 是否与 openjfx 8 版本相同? oracle jdk 8中的javafx和openjfx8有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69111336/

    相关文章:

    java 将utf-8 2字节字符转换为1字节字符

    java - android http 请求的未知主机异常应返回 XML

    JavaFx 与 Maven : doesn't find the mainClass

    java - EventHandler 作为匿名内部类实现

    java - IntelliJ IDEA 2018.2、openjdk 11 和 openjfx 11(没有 maven,不是模块化项目): Module javafx. 找不到控件

    java - Gradle OpenJFx11 : Error - JavaFx runtime components are missing

    java - 没有有用的堆栈跟踪的 Lambda NullPointerException

    Java MouseEvents 不工作

    java - 场景生成器删除 fxml 文件中的导入

    java - JFXPanel setScene 使用 Java 11 卡住