OpenJDK和Adoptium/AdoptOpenJDK有什么区别?
说明:
预构建的OpenJDK(或分发)——从https://hg.openjdk.java.net/构建的二进制文件,以存档或安装程序的形式提供,针对多种平台提供,并提供可能的支持合同。
OpenJDK源代码库(也称为OpenJDK项目)——基于Mercurial的开源代码库,托管在https://hg.openjdk.java.net。Java源代码。绝大部分Java功能(从VM和核心库到编译器)仅基于此源代码库。Oracle有这个源代码库的替代派生。
OpenJDK发行版(见下面的提供者列表)-是免费的啤酒,有点言论自由的意思,但是如果您在使用过程中遇到问题,您不能联系Oracle。没有支持合同。此外,Oracle仅会针对最新的Java发行版本(包括长期支持(LTS)版本),发布任何OpenJDK(分发版)版本的更新。即使OpenJDK(发行版)版本11.0存在安全问题,当Oracle发布OpenJDK(分发版)版本12.0时,Oracle也不会为11.0发布更新。仅由Oracle维护。
一些OpenJDK项目-例如OpenJDK 8和OpenJDK 11-由OpenJDK社区维护,并为某些平台的某些OpenJDK版本提供发布。社区成员已经承担起发布这些OpenJDK版本中安全漏洞修复的责任。
AdoptOpenJDK是一个发行版,与Oracle的OpenJDK分发非常相似(免费,并且是通过编译OpenJDK源代码库中的源代码生成的构建)。AdoptOpenJDK将不会回溯补丁,即除了一些用于Win32支持的构建脚本修补程序外,将不会有实质上不同于上游的AdoptOpenJDK“分叉/版本”。这意味着,如果社区成员(Oracle或其他人,但不包括AdoptOpenJDK作为一个实体)对OpenJDK LTS版本的更新版本进行后置安全修复,那么AdoptOpenJDK将为这些修复提供构建。由OpenJDK社区维护。供应商 | 源代码构建免费 | 二进制发行版免费 | 扩展更新 | 商业支持 | 宽松许可证 | 网址 |
---|---|---|---|---|---|---|
AdoptOpenJDK | 是 | 是 | 是 | 否 | 是 | https://adoptopenjdk.net |
Amazon – Corretto | 是 | 是 | 是 | 否 | 是 | https://aws.amazon.com/corretto |
Azul Zulu | 否 | 是 | 是 | 是 | 是 | https://www.azul.com/downloads/zulu/ |
BellSoft Liberica | 否 | 是 | 是 | 是 | 是 | https://bell-sw.com/java.html |
IBM | 否 | 否 | 是 | 是 | 是 | https://www.ibm.com/developerworks/java/jdk |
jClarity | 否 | 否 | 是 | 是 | 是 | https://www.jclarity.com/adoptopenjdk-support/ |
OpenJDK | 是 | 是 | 是 | 否 | 是 | https://adoptopenjdk.net/upstream.html |
Oracle JDK | 否 | 是 | 否** | 是 | 否 | https://www.oracle.com/technetwork/java/javase/downloads |
Oracle OpenJDK | 是 | 是 | 否 | 否 | 是 | https://jdk.java.net |
ojdkbuild | 是 | 是 | 否 | 否 | 是 | https://github.com/ojdkbuild/ojdkbuild |
RedHat | 是 | 是 | 是 | 是 | 是 | https://developers.redhat.com/products/openjdk/overview |
SapMachine | 是 | 是 | 是 | 是 | 是 | https://sap.github.io/SapMachine |
从源代码构建免费版本 - 发行版源代码公开可用,用户可以自己组装构建
免费二进制发行版 - 发行版二进制文件公开可供下载和使用
扩展更新 - 也称为LTS(长期支持)- 在6个月的发布生命周期之外提供公共更新
商业支持 - 一些提供者为付费客户提供扩展更新和客户支持,例如Oracle JDK(support details)
宽松许可证 - 发行版许可证是非保护性的,例如Apache 2.0
在Sun/Oracle时代,通常是Sun/Oracle基于OpenJDK源代码制作专有的下游JDK发行版。最近,Oracle决定只通过商业支持来制作自己的专有版本。他们也很慷慨地在https://jdk.java.net/网站上发布了OpenJDK版本。
JDK 11开始的变化是从单一供应商(Oracle)思维转向选择提供商为您提供产品分发的思维,根据您喜欢的条件:平台、发布频率和及时性、支持结构等。如果您不信任任何现有的供应商,甚至可以自己构建OpenJDK。
每个OpenJDK版本通常都是从同一个原始上游源代码存储库(OpenJDK“项目”)制作而成。但是,每个版本都是独特的——免费或商业、品牌化或未品牌化、纯净或捆绑(例如,BellSoft Liberica JDK提供捆绑的JavaFX,从JDK 11开始从Oracle版本中删除)。
如果没有环境(例如Linux)和/或许可证要求定义特定的发行版,并且您想要最标准的JDK版本,则可能最好的选择是使用Oracle或AdoptOpenJDK的OpenJDK版本。
附加信息
时候超越Oracle的JDK by Stephen Colebourne
Java仍然免费 由Java Champions社区发布(于2018年9月17日发布)
Java仍然免费2.0.0 由Java Champions社区发布(于2019年3月3日发布)
Aleksey Shipilev关于JDK更新 由Opsian采访(于2019年6月27日发布)
在我的第一次阅读中,似乎这个新许可证使得生产使用免费(以及开发、测试和培训用途),除了出售收费并捆绑Oracle JDK产品的产品。但我不是律师,因此请自行阅读条款并在需要时咨询法律意见。
请记住,许多其他供应商继续提供Java规范的实现,如下面的流程图所示。这些供应商中有些出售支持计划,可以选择购买或作为使用其产品的要求。永远不要假设,总是阅读您获取的任何分发的详细要求。OpenJDK和AdoptOpenJDK之间的区别
前者提供源代码,后者提供该源代码的构建版本。
Adoptium是Eclipse Foundation(前身为AdoptOpenJDK)的其中一个分发Java平台实现的供应商。其他供应商包括:
请参考我的这份流程图,以帮助您选择Java平台实现的供应商。点击/轻触可放大。
另一个资源:Azul Systems的此比较矩阵非常有用,我认为它很真实公正。
以下是在选择供应商和实施方案时需要考虑的因素和动机列表。
一些供应商会提供 JIT技术的选择。
要更好地了解这个Java生态系统,请阅读Java仍然是免费的。