OpenJDK与Adoptium/AdoptOpenJDK的区别

由于最近的Oracle Java SE支持路线图政策更新(特别是2019年3月之后Oracle免费发布更新的结束),我一直在寻找Oracle Java的替代品。我发现OpenJDK是一个开源的替代品。我找到了AdoptOpenJDK就是现在的作为Adoptium,这是一个预先构建的二进制。这谜题。

OpenJDK和Adoptium/AdoptOpenJDK有什么区别?

205505 次浏览

简而言之:

  • OpenJDK有多重含义,可以指:
    • Java平台标准版(Java SE)的免费和开源实现
    • 开源存储库 - Java源代码,又名OpenJDK项目
    • 由Oracle维护的预构建OpenJDK二进制文件
    • 由OpenJDK社区维护的预构建的OpenJDK二进制文件
  • AdoptOpenJDK——由社区维护的预构建的OpenJDK二进制文件(开放源码许可)

解释:

预先构建的OpenJDK(或发行版)-二进制文件,从https://hg.openjdk.java.net/构建,作为存档或安装程序提供,提供给各种平台,并可能有支持合同。

OpenJDK,源存储库(也称为OpenJDK项目) -是一个基于__abc2的开源存储库,托管在 https://hg.openjdk.java.net。Java源代码。绝大多数Java特性(从VM和核心库到编译器)都完全基于这个源存储库。

OpenJDK,发行版(参见下面的提供者列表)-是免费的啤酒和某种言论自由,但是,如果你有问题,你不能调用Oracle。没有支持合同。此外,Oracle只会发布任何OpenJDK(发行版)版本的更新,前提是该版本是最新的Java版本,包括LTS(长期支持)版本。在Oracle发布OpenJDK(发行版)12.0版本的当天,即使OpenJDK(发行版)11.0版本存在安全问题,Oracle也不会发布11.0版本的更新。由Oracle单独维护。

一些OpenJDK项目——例如OpenJDK 8OpenJDK 11——由OpenJDK社区维护,并为某些平台提供了一些OpenJDK版本的发布。社区成员已经承担了发布这些OpenJDK版本中安全漏洞补丁的责任。

AdoptOpenJDK,发行版与Oracle的OpenJDK发行版非常相似(因为它是免费的,并且它是通过编译OpenJDK源代码存储库中的源代码而生成的构建)。AdoptOpenJDK作为一个实体将不会背移植补丁,即不会有一个与上游有实质性不同的AdoptOpenJDK“fork/version”(除了一些构建脚本补丁,如Win32支持)。这意味着,如果社区成员(Oracle或其他,但不是AdoptOpenJDK作为一个实体)将安全补丁背移植到OpenJDK LTS版本的更新中,那么AdoptOpenJDK将为这些版本提供构建。由OpenJDK社区维护。

OracleJDK -是另一个发行版。从JDK12开始,将没有免费版本的OracleJDK。Oracle的JDK发行版旨在提供商业支持。你为此付出了代价,但你还得依赖甲骨文的支持。与Oracle的OpenJDK不同,OracleJDK对LTS版本的支持时间更长。作为开发人员,您可以获得仅用于特定JDK的个人/开发使用的免费许可证,但这主要是转移注意力,因为“只是二进制文件”基本上与OpenJDK二进制文件相同。我猜这意味着你可以从甲骨文的网站上下载安全补丁版本的LTS jdk,只要你保证不把它们用于商业用途。

请注意。最好将Oracle的OpenJDK构建称为“Oracle OpenJDK构建”。

Oracle 的Java产品经理Donald Smith:

理想情况下,我们可以简单地将所有Oracle JDK构建称为“Oracle JDK”, 在GPL或商业许可下,取决于你的 的情况。不过,由于历史原因,而小存 存在差异,我们将它们分别称为甲骨文的

. OpenJDK和Oracle JDK

OpenJDK提供者和比较

提供者 免费版本
from Source
免费的二进制< br >分布 扩展< br >更新 商业< br >的支持 宽容< br >许可 网站
AdoptOpenJDK 是的 是的 是的 没有 是的 https://adoptopenjdk.net
亚马逊- Corretto 是的 是的 是的 没有 是的 https://aws.amazon.com/corretto
Azul祖鲁语 没有 是的 是的 是的 是的 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
甲骨文JDK 没有 是的 没有* * 是的 没有 https://www.oracle.com/technetwork/java/javase/downloads
甲骨文OpenJDK 是的 是的 没有 没有 是的 https://jdk.java.net
ojdkbuild 是的 是的 没有 没有 是的 https://github.com/ojdkbuild/ojdkbuild
RedHat 是的 是的 是的 是的 是的 https://developers.redhat.com/products/openjdk/overview
SapMachine 是的 是的 是的 是的 是的 < a href = " https://sap.github。io / SapMachine noreferrer“rel = > https://sap.github.io/SapMachine < / >

来自源代码的免费构建 -发布源代码是公开的,可以组装自己的构建

免费二进制发行版 -发行版二进制版本可供公开下载和使用

扩展更新 -又名LTS(长期支持)-超过6个月发布生命周期的公开更新

商业支持 -一些提供商为付费客户提供扩展更新和客户支持,例如Oracle JDK (支持细节)

Permissive License -分发许可证是非保护的,例如Apache 2.0


我应该使用哪个Java发行版?

在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的OpenJDK或AdoptOpenJDK。


额外的信息

是时候超越Oracle的JDK了斯蒂芬科尔伯恩

Java仍然是免费的由Java冠军社区(发布于2018年9月17日)

Java仍然免费2.0.0由Java冠军社区(发布于2019年3月3日)

Aleksey Shipilev谈到JDK更新采访Opsian(发表于2019年6月27日)

更新2021 - 09

在我第一次阅读时,这个新许可证似乎使生产使用免费(连同开发、测试和培训使用),除了在捆绑Oracle JDK的同时收费销售的产品产品。但我不是律师,所以请自己阅读条款,并根据需要咨询法律建议。

请记住,许多其他供应商继续提供Java规范的实现,如下面的流程图所示。其中一些供应商出售支持计划,或者是可选的,或者是作为使用其产品的要求。永远不要假设,始终阅读您获得的任何发行版的详细需求。

另一项2021年更新:将微软添加到下面所示的供应商列表中。


更新: AdoptOpenJDK已更改其名称为Adoptium,作为其转移到Eclipse基金会的一部分。


OpenJDK➙源代码
Adoptium / AdoptOpenJDK➙构建

OpenJDK和AdoptOpenJDK的区别

第一个提供了该源代码的源代码,另一个提供了该源代码的构建

Java &OpenJDK

Eclipse基金会Adoptium,以前称为AdoptOpenJDK,只是几个分发Java平台实现的供应商之一。这些包括:

  • Eclipse Foundation (Adoptium/AdoptOpenJDK)
  • Azul Systems
  • 甲骨文
  • 红帽/ IBM
  • BellSoft
  • SAP
  • Amazon AWS
  • ……以及更多

请参阅我的流程图,以帮助您为Java平台的实现选择供应商。点击/轻按放大。

为Java 11实现选择供应商的流程图

另一个资源:Azul Systems的这个比较矩阵是有用的,在我看来是真实和公平的。

下面是在选择供应商和实现时需要考虑的一些因素和动机。

选择Java供应商的动机

一些供应商为你提供了JIT技术的选择。

 HotSpot &历史图表;“/></a> . jdk”和“OpenJ9”都可以在AdoptOpenJDK中使用</p>
<p>要了解更多关于Java生态系统的信息,请阅读<a href=Java仍然免费