从Java 11开始,是时转向Oracle JDK之外的世界了!

从Java 11开始思考Oracle JDK之外的世界。是时候欣赏OpenJDK构建的生态系统的深度了。

从Java 11开始,是时转向Oracle JDK之外的世界了!

OpenJDK构建

实际上,JDK只有一组源代码。源代码在OpenJDK的Mercurial中托管。任何人都可以获取该源代码,生成构建并将其发布到URL上。但是应该使用一个独特的认证过程来确保构建有效。

认证由Java Community Process运行,后者提供技术兼容性工具包(TCK,有时也称为JCK)。如果组织生成通过TCK的OpenJDK构建,则该构建可以描述为“Java SE兼容”。

请注意,如果供应商没有从Oracle获得商业许可,则不能将构建称为“Java SE”。例如,通过TCK的 AdoptOpenJDK构建不是“Java SE”,而是“Java SE兼容”或“与Java SE规范兼容”。另请注意,认证目前是基于信任的——结果不会提交给JCP/Oracle进行检查,也不能公开。

总而言之,OpenJDK + Vendor流程将一个源库转换为许多不同的构建。

在将OpenJDK源库转换为构建的过程中,供应商可能会或可能不会添加一些额外的品牌或实用程序,前提是这些不会阻止认证。例如,供应商无法向API或新语言功能添加新的公共方法。

Oracle JDK

从Java 11开始,这是一个带有付费支持的品牌商业版本。它可以免费供开发使用,但不能用于生产。Oracle计划在2026年或之后提供全额付费支持。请注意,与过去不同,Oracle JDK并不比OpenJDK构建“更好”(前提是两者都处于相同的安全补丁级别)。

OpenJDK由Oracle构建

这些是免费的纯无品牌OpenJDK版本,具有Classpath Extension的GPL许可证(可安全用于公司)。这些版本仅在发布的前6个月内可用。对于Java 11,期望有Java 11.0.0,然后是两个安全补丁11.0.1和11.0.2。要继续使用Oracle的OpenJDK构建和安全补丁,你必须在发布后的一个月内迁移到Java 12。(请注意,安全补丁的提供与支持不同。)

AdoptOpenJDK构建

这些是使用Classpath Extension的GPL许可下的免费纯粹的无品牌OpenJDK版本。与Oracle的OpenJDK构建不同,这些构建将在Java 11等主要版本中持续更长的时间。在下一个主要版本(详细信息)发布一年后,Java 11版本将持续4年。AdoptOpenJDK是一个社区组织。如果其他组织在OpenJDK的源存储库中创建和发布安全修补程序,它们将提供构建。IBM和红帽都表示他们打算提供这些安全补丁。

AdoptOpenJDK OpenJ9构建

除了标准的OpenJDK构建之外,AdoptOpenJDK还将使用OpenJ9而不是HotSpot提供构建。OpenJ9最初是IBM的JVM,但OpenJ9现在是Eclipse的开源。

红帽OpenJDK构建

红帽通过Red Hat Enterprise Linux(RHEL)提供OpenJDK的构建,这是一个带有付费支持的商业产品。他们非常擅长向OpenJDK提供安全补丁,毫毛已经运行了Java 6和7的安全更新项目.Red Hat构建更好地集成到操作系统中,因此它不是纯粹的OpenJDK构建(尽管你不会注意到差异)。

其他Linux OpenJDK版本

不同的Linux发行版有不同的方式来访问OpenJDK。比如:Debian, Fedora, Arch, Ubuntu。

Azul Zulu

Zulu是OpenJDK的品牌版本,具有商业付费支持。此外,Azul以“Zulu社区”免费提供一些Zulu版本,但是对于这些免费版本的可用性没有具体的承诺。Azul有一个广泛的计划,支持Zulu商业化,包括支持Java 9,13和15的计划,与其他任何供应商不同。

IBM

IBM为Java 8及更早版本提供并支持JDK 。他们还使用OpenJ9为AdoptOpenJDK构建提供商业付费支持。

SAP

SAP 根据GPL + CE许可证为Java 10及更高版本提供JDK 。他们还有一个商业的闭源JVM。而我没有找到任何有关支持生命周期的信息。

其他

毫无疑问,其他OpenJDK版本,包括商业版和免费版。不妨留言!

结语

OpenJDK有许多不同的版本,原始的上游源代码库。每个版本都提供自己独特的选择——免费或商业,品牌或非品牌。

选择很棒。但是如果你只是想要“标准”,那么目前最好的建议是使用Oracle的OpenJDK版本,AdoptOpenJDK版本或操作系统(Linux)中的版本。

相关推荐