由于最近的Oracle Java SE Support Roadmap策略更新(尤其是2019年3月之后Oracle的$ free版本更新结束),我一直在寻找Oracle Java的替代产品。我发现OpenJDK是开源替代方案。而且我发现了AdoptOpenJDK,它是一个预构建的二进制文件。令人困惑。
OpenJDK和AdoptOpenJDK有什么区别?
答案 0 :(得分:74)
简而言之:
说明:
预构建的OpenJDK (或分发)-由http://hg.openjdk.java.net/构建的二进制文件,以zip或安装程序的形式提供,适用于各种平台,并带有可能的支持合同。
OpenJDK,源存储库(也称为 OpenJDK项目)-是基于Mercurial的开源存储库,托管在[http://hg.openjdk.java.net] 。 Java源代码。绝大多数Java功能(从VM和核心库到编译器)仅基于此源存储库。甲骨文对此有另一种选择。
OpenJDK,发行版(请参阅下面的提供程序列表)-为free as in beer,种类为free as in speech,但是如果您有,请不要致电Oracle问题。没有支持合同。此外,Oracle仅会发布对任何OpenJDK(发行版)版本的更新,前提是该版本是最新的Java版本(包括LTS)。甲骨文发布OpenJDK(发行版)12.0版的那天,即使OpenJDK(发行版)11.0版存在安全问题,Oracle也不会发布11.0版的更新。完全由Oracle维护。
采用OpenJDK,发行版-与Oracle的OpenJDK发行版非常相似(因为它是免费的,并且是通过编译来自OpenJDK源代码库的源代码生成的版本)。将AdoptOpenJDK作为一个实体不会向后移植补丁程序,即不会有与上游有实质性区别的AdoptOpenJDK'fork / version'(除了一些诸如Win32支持之类的构建脚本补丁程序外)。这意味着,如果社区成员(Oracle或其他成员,而不是AdoptOpenJDK作为实体)向后移植安全补丁以更新OpenJDK LTS版本,则AdoptOpenJDK将为其提供构建。由OpenJDK社区维护。
还有 OracleJDK -另一个发行版,从JDK12开始,将没有免费版本。 Oracle的JDK发行产品旨在提供商业支持。您为此付费,但随后您确实需要依靠Oracle来获得支持。与Oracle的OpenJDK产品不同,OracleJDK产品确实对LTS版本提供了更长的支持。作为开发人员,您只能为此特定的JDK获得免费的个人/开发使用许可,但这主要是一个红鲱鱼,因为“只是二进制文件”与OpenJDK二进制文件基本相同。我想这意味着您可以从Oracle网站下载LTS JDK的安全补丁版本,只要您保证不将其商业使用即可。
注意。最好将Oracle的OpenJDK构建称为“ Oracle OpenJDK构建”。
Oracle writes的Java产品经理Donald Smith:
理想情况下,我们将所有Oracle JDK构建简称为“ Oracle JDK”,取决于您的GPL或商业许可 情况。但是,由于历史原因,剩下的一小部分 存在差异,我们将它们分别称为Oracle的 OpenJDK和Oracle JDK构建。
--------------------------------------------------------------------------- | Provider | Free Builds | Free Binary | Extended | Commercial | | | from Source | Distributions | Updates* | Support | |-------------------------------------------------------------------------| | AdoptOpenJDK | Yes | Yes | Yes | No | | Azul | No | Yes | Yes | Yes | | IBM | No | No | Yes | Yes | | Mercurial | Yes | Yes | No | No | | Oracle | No | Yes | No** | Yes | | RedHat | Yes | Yes | Yes | Yes | | SapMachine | Yes | Yes | Yes | Yes | | Amazon – Corretto | Yes | Yes | Yes | No | ---------------------------------------------------------------------------
*扩展更新-超过6个月发行生命周期的公共更新
** Oracle为付费客户提供扩展的更新(和支持),即仅Oracle JDK
其他信息
Time to look beyond Oracle's JDK,作者Stephen Colebourne
Java Is Still Free,由Java Champions社区发布(于2018年9月17日发布)
Java is Still Free 2.0.0(由Java Champions社区发布(于2019年3月3日发布)
答案 1 :(得分:9)
OpenJDK与AdoptOpenJDK之间的区别
第一个提供了源代码,另一个提供了该源代码的构建。
AdoptOpenJDK 只是分发Java平台实现的多家供应商之一。
请参阅我的此流程图,以帮助指导您为Java平台的实现选择厂商。点击/点击进行缩放。
以下是选择供应商和实施时要考虑的因素和动机。