从 Oracle JDK 迁移到 Open JDK
让我们首先讨论迁移的必要性。如下在 2018 年,Oracle 宣布在 2019 年 1 月之后,企业将需要购买商业许可证(即从 Oracle 购买)才能接收软件更新。保留 Oracle Java并升级到受支持的补丁级别并支付订阅费用。为了让您了解成本,服务器的每个核心都必须获得许可,每月核心成本为 25 美元。此外,如果服务器处于虚拟化环境中,即使集群中只有一台带有Java 的服务器,整个集群“核心”也需要支付许可费用。
1. 先决条件:在比较 Oracle Java与 Open JDK 之前,让我们先了解一下技术要求。
Oracle 已经对比 Oracle Java JE 8 补丁 211 和 JDK 11 更新的任何内容收取订阅费,从安全漏洞的角度来看,将版本保持在不受支持的旧补丁级别并不理想。因此,我们必须确定是否确实需要安装 Oracle Java JE 或 JDK 才能在服务器上运行任何应用程序。
对于您拥有的每台服务器,我们要求您选择适当的响应,如下所示:
- 如果不需要,请卸载 Oracle Java版本
- 如果与您的需要兼容,请再次选择使用开源版本
Note: Some applications which require Oracle Java may have included this cost as a part of the main application license fee, please validate this with your application vendor.
Keep Oracle Java and upgrade to supported patch level and pay the subscription costs. To give you an idea of the cost, each core of the server must be licensed, and it costs the US $25 core per month. Also, if the server is in a virtualized environment, the entire cluster “cores” would be liable for license fee even if you have just one server with Java in the cluster.
2 . Oracle JDK 的现有实现
根据 Oracle 支持最后一个不收费的Java版本Java 1.8.0.202(64 位),让我们先来看看亮点。
- OpenJDK 和 Oracle JDK 之间最大的区别是许可。 OpenJDK 是一个完全开源的Java ,具有 GNU 通用公共许可证。根据 Oracle 二进制代码许可协议,Oracle JDK 需要商业许可。
- 自 2019 年 1 月起,企业现在需要购买商业许可证(来自 Oracle)才能接收软件更新。
- 从历史上看,Oracle JDK 的性能优于 OpenJDK。但是,OpenJDK 的性能正在增长。而且 OpenJDK 社区的贡献往往优于 Oracle JDK。
- OpenJDK 99% 的代码与 Oracle JDK 相同(取决于您从哪个提供商获取它),所以这真正归结为支持。
3 . OpenJDK 生命周期日期和 RHEL 版本
RHEL 5 Support 新增 RHEL 6 Support 新增 RHEL 7 Support 新增 RHEL 8 Support 新增 End of Support for OpenJDK 版本如下:
OpenJDK 6 (1.6) 5.3 6.0 7.0 N/A December 2016
OpenJDK 7 (1.7) 5.9 6.3 7.0 N/A June 2020
OpenJDK 8 (1.8) N/A 6.6 7.1 8.0 May 2026
OpenJDK 11 N/A N/A 7.6 8.0 October 2024
OpenJDK 的服务水平协议 (SLA) 和覆盖范围 (SoC) 确定如下,对于 OpenJDK 在 RHEL 和 Windows 上的生产部署,定义了 SoC(生产支持覆盖范围,即红帽客户门户)和 SLA定义(生产支持服务条款 - 红帽客户门户)。
4 .发布时间表
Oracle 每三年发布一次,而 OpenJDK 每六个月发布一次
5 .执照
Oracle JDK 根据 Oracle 二进制代码许可协议获得许可,而 OpenJDK 具有 GNU 通用公共许可证 (GNU GPL) 版本 2,但有一个链接例外。
6 .表现
两者之间没有真正的技术差异,因为 Oracle JDK 的构建过程基于 OpenJDK 的构建过程。在性能方面,Oracle 在响应能力和 JVM 性能方面要好得多。由于其对企业客户的重视,它更加注重稳定性。相比之下,OpenJDK 将更频繁地发布版本。因此,我们可能会遇到不稳定的问题。
7 .特征
如果我们比较特性和选项,我们会看到 Oracle 产品具有 Flight Recorder、 Java Mission Control 和 Application Class-Data Sharing 特性,而 OpenJDK 具有 Font Renderer 特性。此外,Oracle 有更多垃圾收集选项和更好的渲染器。
8 .发展与普及
Oracle JDK 完全由 Oracle Corporation 开发,而 OpenJDK 由 Oracle、OpenJDK 和Java社区开发。但是,Red Hat、Azul Systems、IBM、Apple Inc.、SAP AG 等一流公司也积极参与其开发。
9 .成本效益分析
保留 Oracle Java并升级到受支持的补丁级别并支付订阅费用。为了让您了解成本,服务器的每个核心都必须获得许可,每月核心成本为 25 美元。此外,如果服务器处于虚拟化环境中,即使集群中只有一台带有Java 的服务器,整个集群“核心”也需要支付许可费用。