OpenJDK和Adoptium/AdoptOpenJDK之间的区别更新 2021-09 OpenJDK ➙ 源代码Adoptium/AdoptOpenJDK ➙ buildsJava和OpenJDK的几家供应商

2022-08-31 04:58:54

由于最近的Oracle Java SE支持路线图政策更新(特别是2019年3月之后的oracle$free发布更新结束),我一直在寻找Oracle Java的替代品。我发现OpenJDK是一个开源的替代品。我发现了AdoptOpenJDK现在被称为Adoptium,这是一个预构建的二进制文件。它令人困惑。

OpenJDK和Adoptium/AdoptOpenJDK有什么区别?


答案 1

总之:

  • OpenJDK具有多种含义,可以指:
  • Java Platform, Standard Edition (Java SE) 的免费和开源实现
  • 开源存储库 — Java 源代码,又名 OpenJDK 项目
  • 由 Oracle 维护的预构建 OpenJDK 二进制文件
  • 由 OpenJDK 社区维护的预构建的 OpenJDK 二进制文件
  • AdoptOpenJDK — 由社区维护的预构建的 OpenJDK 二进制文件(开源许可))

解释:

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

开源存储库OpenJDK(也称为OpenJDK项目)是一个基于Mercurial的开源存储库,托管在 https://hg.openjdk.java.net。Java 源代码。绝大多数 Java 功能(从 VM 和核心库到编译器)都完全基于此源存储库。Oracle有另一个分支。

OpenJDK,发行版(请参阅下面的提供商列表) - 像啤酒一样免费并且像语音一样免费,但是,如果您遇到问题,则无法调用Oracle。没有支持合同。此外,Oracle只会在任何OpenJDK(发行版)版本发布更新,前提是该版本是最新的Java版本,包括LTS(长期支持)版本。Oracle 发布 OpenJDK(发行版)版本 12.0 的那一天,即使 OpenJDK(发行版)版本 11.0 存在安全问题,Oracle 也不会发布 11.0 的更新。完全由甲骨文维护。

一些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提供支持。与Oracle的OpenJDK产品不同,OracleJDK对LTS版本的支持更长。作为开发人员,您只能获得个人/开发使用这个特定JDK的免费许可证,但这主要是一个红鲱鱼,因为“只是二进制文件”基本上与OpenJDK二进制文件相同。我想这意味着你可以从Oracle的网站下载LTS JDK的安全补丁版本,只要你承诺不将它们用于商业用途。

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

Oracle Java产品经理Donald Smith写道

理想情况下,我们将所有Oracle JDK版本简单地称为“Oracle JDK”,无论是在GPL下还是在商业许可证下,具体取决于您的情况。但是,由于历史原因,虽然存在微小的剩余差异,但我们将分别将它们称为Oracle的OpenJDK构建和Oracle JDK。


OpenJDK 提供程序和比较

供应商
来自源代码的免费构建
免费二进制
分发版
扩展
更新
商业
支持
许可
网站
AdoptOpenJDK 是的 是的 是的 是的 https://adoptopenjdk.net
亚马逊 – 科雷托 是的 是的 是的 是的 https://aws.amazon.com/corretto
阿祖尔祖鲁语 是的 是的 是的 是的 https://www.azul.com/downloads/zulu/
BellSoft Liberica 是的 是的 是的 是的 https://bell-sw.com/java.html
国际商业机器 是的 是的 是的 https://www.ibm.com/developerworks/java/jdk
j克拉里蒂 是的 是的 是的 https://www.jclarity.com/adoptopenjdk-support/
OpenJDK 是的 是的 是的 是的 https://adoptopenjdk.net/upstream.html
甲骨文 JDK 是的 否** 是的 https://www.oracle.com/technetwork/java/javase/downloads
Oracle OpenJDK 是的 是的 是的 https://jdk.java.net
ojdkbuild 是的 是的 是的 https://github.com/ojdkbuild/ojdkbuild
红帽子 是的 是的 是的 是的 是的 https://developers.redhat.com/products/openjdk/overview
萨普机 是的 是的 是的 是的 是的 https://sap.github.io/SapMachine

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

免费二进制分发 - 分发二进制文件可公开下载和使用

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

商业支持 - 某些提供商向付费客户提供扩展更新和客户支持,例如 Oracle JDK(支持详细信息

许可许可 - 分发许可是非保护性的,例如 Apache 2.0


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

在Sun/Oracle时代,通常是Sun/Oracle基于OpenJDK源代码生产专有的下游JDK发行版。最近,Oracle决定只在附带商业支持的情况下进行自己的专有构建。他们慷慨地在他们的 https://jdk.java.net/ 网站上发布了OpenJDK构建版本。

从JDK 11开始,正在发生的事情是从单一供应商(Oracle)思维模式转变为一种思维方式,在这种思维模式中,您可以选择一个提供商,在您喜欢的条件下为您提供产品发行版:他们构建的平台,发布的频率和及时性,支持的结构等。如果你不信任任何现有的供应商,你甚至可以自己构建OpenJDK。

OpenJDK的每个版本通常都是由相同的原始上游源代码存储库(OpenJDK“项目”)创建的。然而,每个版本都非常独特 - $free或商业,品牌或无品牌,纯或捆绑(例如,BellSoft Liberica JDK提供捆绑的JavaFX,从JDK 11开始从Oracle版本中删除)。

如果没有环境(例如Linux)和/或许可证要求定义特定的发行版,并且如果您想要最标准的JDK构建,那么最好的选择可能是使用Oracle的OpenJDK或AdoptOpenJDK。


附加信息

是时候超越斯蒂芬·科尔伯恩的甲骨文JDK

Java Is Still Free by Java Champions community (发表于2018年9月17日)

Java仍然是免费的2.0.0,由Java Champions社区提供(发布于2019年3月3日)

阿列克谢·希皮列夫关于JDK更新Opsian的采访(发表于2019年6月27日)


答案 2

更新 2021-09

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

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

另一个2021年更新:将Microsoft添加到下面看到的供应商列表中。


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


OpenJDK ➙ 源代码
Adoptium/AdoptOpenJDK ➙ builds

OpenJDK和AdoptOpenJDK之间的区别

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

Java和OpenJDK的几家供应商

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

  • Eclipse Foundation (Adoptium/AdoptOpenJDK)
  • 蔚蓝系统
  • 神谕
  • 红帽 / IBM
  • 贝尔软件
  • 树液
  • 亚马逊 AWS
  • ...以及更多

请参阅我的这个流程图,以帮助指导您为Java平台的实现选择供应商。单击/点按以缩放。

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

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

下面列出了在选择供应商和实现时要考虑的注意事项和动机。

Motivations in choosing a vendor for Java

某些供应商为您提供了 JIT 技术的选择。

Diagram showing history of HotSpot & JRockit merging, and OpenJ9 both available in AdoptOpenJDK

要了解有关此Java生态系统的更多信息,请阅读Java仍然免费


推荐