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

liy*_*iya 9 java javafx openjfx

我们正在从 Oracle jdk8 迁移到 OpenJDK 8。但是我们的系统有 JavaFX 代码,需要从 JavaFX 迁移到 OpenJFX。

我想知道Oracle jdk8中的JavaFX和openjfx8有什么关系。谁能为我解释一下吗?

Bas*_*que 10

Oracle 非捆绑开源JavaFX

\n

Oracle 将自己的 JavaFX 实现与其Oracle JDK产品的 Java 8 版本捆绑在一起。

\n

后来,Oracle 停止了该捆绑包。

\n

OpenJFX项目

\n

大约在同一时间,Oracle 开源了其 JavaFX 实现,使该源代码成为OpenJDK项目的子项目。该子项目称为OpenJFX(因为 Oracle 保留其 \xe2\x80\x9cJava\xe2\x80\x9d 品牌的商业权利)。请参阅其 GitHub 页面OpenJDK wiki 页面

\n

Oracle 现在与Gluon公司共享 OpenJFX 开发的领导权。Gluon 销售其他库的支持、许可证和服务。Oracle 也可能出售支持。

\n

OpenJFX 正在积极开发。主要版本与 Java 的每个主要版本大约同时发布。Java 17将于本月(2021-09)发布,OpenJFX 17版本已经可用。JavaFX 17 需要 JDK 11 或更高版本。请参阅JavaFX 17 发行说明

\n

有关更多信息和开发人员文档,请参阅 OpenJFX 网站:https://openjfx.io/

\n

Oracle JDK是从 OpenJDK 构建的

\n

你说:

\n
\n

我们正在从 oracle jdk8 迁移到 openjdk 8

\n
\n

Oracle JDK 产品基于 OpenJDK。Oracle 致力于实现它们之间的功能对等。唯一的区别是 (a) Oracle 销售对 Oracle JDK 的支持,并且在生产中使用时需要付费(但不用于开发和测试),以及 (b) Oracle 保留立即直接向其付费客户提供任何必要修复的权利无需等待修复程序通过 OpenJDK 进程。

\n

用于部署 JavaFX/OpenJFX 库的选项

\n

当前版本的 Oracle JDK 不再捆绑 JavaFX 库。因此,无论您选择哪种 Java 发行版(Pivotal、Azul Systems、Microsoft、SAP、Amazon、BellSoft、Oracle、Red Hat/IBM、Adoptium/AdoptOpenJDK 等),您都需要解决提供必要的 OpenJFX 的问题图书馆。

\n

一种选择是将库与您的应用程序捆绑在一起。新的jlinkjpackage工具可能会有所帮助。

\n\n

另一种选择是将 OpenJFX 库的副本放在 user\xe2\x80\x99s 计算机的类路径上。

\n

第三种选择是使用包含 OpenJFX 库的 JDK 发行版。至少有两家公司提供了包含 OpenJFX 的 JDK 发行版变体:

\n
    \n
  • 来自 Azul Systems 的ZuluFX
  • \n
  • 来自 BellSoft 的LibericaFX
  • \n
\n

OpenJFX 从版本 11 开始

\n

你说:

\n
\n

但是我们的系统有javafx代码,需要从javafx迁移到openjfx吗?

\n
\n

我只看到 OpenJFX 的版本号为 11 到 18。只有 OpenJFX 11 和 17 才会获得长期支持。

\n

他们建议 OpenJFX 使用 Java 16,最低要求为 Java 11。因此您可能无法将基于 Java 8 的项目迁移到 OpenJFX。

\n

建议:迁移到版本 17

\n

Java 17将于本月发布,预计将被指定为长期支持 (LTS)版本。我建议您考虑将 Java 8 应用程序更新到 Java 17 和 OpenJFX 17。自版本 8 以来,Java 和 JavaFX 都取得了突飞猛进的发展。

\n

首先研究Jewelsea 的答案,讨论 JavaFX 和 OpenJFX 各个版本的技术变化。然后仔细阅读这两个产品线的所有发行说明,记录应用程序的任何潜在问题。那么就尝试一下吧。尝试转换,看看会出现什么问题。尝试修复它们。如果您最终成功,您\xe2\x80\x99将为未来做好准备。

\n

资源

\n

您可能想阅读这些白皮书:

\n\n

  • 这是令人印象深刻的答案。 (2认同)