从Oracle JDK迁移到Open JDK
让我们首先讨论迁移的必要性。根据Oracle在2018年发布的声明,从2019年1月起,企业必须购买商业许可证(即Oracle许可证)才能获得软件升级。 这包括维护Oracle Java,更新到最新的补丁级别以及支付会员费。您可以了解一下价格:每个服务器核心都需要许可,每个核心每月需支付25美元。
此外,即使集群中只有一个Java服务器,如果它是虚拟化的,许可证价格也将适用于服务器的所有“核心”。
Oracle JDK和Open JDK
先决条件
Oracle对高于Oracle Java SE 8 patch 211和JDK 11的版本都收取会员费用,从安全漏洞的角度来看,将版本保留在较旧的、不受支持的补丁级别是不理想的。因此,我们必须确定为了运行服务器上的任何应用程序是否真的需要Oracle Java SE或JDK安装。
对于您拥有的每个服务器,为每个服务器选择相关选项。
如果不需要Oracle Java,请卸载它。
如果满足您的需求,请选择再次使用开源版本。
Oracle JDK的现有实现
让我们首先回顾一下Oracle支持的最新非收费Java版本Java 1.8.0.202(64位)的要点。
Open JDK和Oracle JDK最大的区别在于许可。Open JDK是完全开源的Java,具有GNU通用公共许可证。Oracle JDK根据Oracle二进制代码许可协议需要商业许可证。
自2019年1月起,想要获得软件更新的组织必须购买商业许可证(来自Oracle)。
过去,Oracle JDK的性能优于Open JDK。然而,Open JDK的性能正在提高。而且Open JDK社区的贡献经常超过Oracle JDK。
这实际上归结为支持,因为Open JDK与Oracle JDK共享99.9%的代码(取决于您从哪个供应商获得它)。
Open JDK生命周期日期和RHEL版本
Open JDK版本的支持如下:
Open JDK 6 (1.6) 5.3 6.0 7.0 N/A 2016年12月
Open JDK 7 (1.7) 5.9 6.3 7.0 N/A 2020年6月
Open JDK 8 (1.8) N/A 6.6 7.1 8.0 2026年5月
Open JDK 11 N/A N/A 7.6 8.0 2024年10月
对于在RHEL和Windows上部署Open JDK,服务级别协议 (SLA) 和覆盖范围 (SoC) 分别在生产支持覆盖范围和生产支持服务条款中定义。
发布计划
Oracle每三年发布一次,而Open JDK每六个月发布一次。
许可证
Open JDK根据GNU通用公共许可证(GNU GPL)版本2(带有链接例外)许可,这与Oracle JDK的Oracle二进制代码许可协议形成对比。
性能
由于Oracle JDK的构建过程基于Open JDK的构建过程,因此两者之间没有重大的技术差异。Oracle在响应速度和JVM性能方面表现出更优越的性能,因为它非常重视其商业客户,因此更注重稳定性。另一方面,Open JDK将更频繁地提供更新。因此,我们可能会遇到不稳定性问题。
特性
在比较特性和设置时,我们可以看到Open JDK具有字体渲染特性,而Oracle产品具有Flight Recorded、Java Mission Control和应用程序类数据共享功能。此外,Oracle提供更优越的渲染和额外的垃圾回收选项。
开发和普及
与由Oracle、Open JDK和Java社区共同开发的Open JDK不同,Oracle JDK完全由Oracle公司开发。但像Red Hat、Azul Systems、IBM、Apple Inc.和SAP AG这样享有盛誉的公司也积极参与其发展。
成本效益分析
维护Oracle Java,更新到最新的补丁级别,并支付会员费。您可以了解一下价格:每个服务器核心都需要许可,每个核心每月需支付25美元。此外,即使集群中只有一个Java服务器,如果它是虚拟化的,许可证价格也将适用于服务器的所有核心。
Oracle JDK和Open JDK的比较
特性 |
Oracle JDK |
Open JDK |
---|---|---|
长期支持选项 |
Java 8 直到 2022 年(主要支持)和 2025 年 3 月(扩展支持) Java 11 直到 2023 年 9 月(主要支持)和 2026 年 9 月(扩展支持) |
每个版本的月度支持周期,如果您想使用受支持的Java版本,则必须更新JDK版本 |
TCK兼容性 |
兼容 |
兼容 |
免费/商业基础 |
需要购买许可证。许可证数量取决于使用Java的处理器、核心和用户数量。 |
JDK是免费的。GNU通用公共许可证V2,带有类路径例外 (GPLv2+CPE) |
支持 |
Oracle |
社区 |
成本 |
每年40,500美元 |
免费 |
结论
经过仔细研究,很明显,在Open JDK和Oracle JDK的争论中,Open JDK占据了相当大的优势。由于Open JDK是一个开源平台,因此鼓励Java开发人员为进一步发展该平台做出贡献。最终,我们将见证许多优秀的Java开发人员(他们使用Open JDK并且以前是Oracle JDK的积极贡献者)所做的丰富创造性工作和成果。