42

Azul OpenJDK、Zulu OpenJDK 和 OpenJDK 有什么区别?

4

2 回答 2

67

2021-09 更新

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

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

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


Java 规范与实现

Java 由一组规范JSRJEP定义,均由 Oracle 发布。

这些规范在OpenJDK项目的源代码中实现。

一些供应商提供了该源代码的构建。有些为这些构建收费,有些则不收费。

Azul Systems就是这样的供应商之一,它是一家提供多种实现的公司。祖鲁社区就是其中之一,免费提供。Zulu Enterprise是他们的另一个产品,一种商业产品。Zing是他们的另一个产品,一个用于特殊需求的 JVM/JDK。

您问:

Azul OpenJDK、Zulu OpenJDK 和 OpenJDK 之间有什么实际区别吗?

是和不是。

首先,OpenJDK 只提供源代码。所以你不能使用 OpenJDK 来运行 Java 应用程序。您必须首先自己构建 OpenJDK 源代码以获得特定主机平台的可执行文件,或者您必须依赖供应商为您构建。从下面的流程图中可以看出,有几个这样的供应商正在构建 OpenJDK 源代码。

至于 Azul Systems 的产品,我不知道Azul OpenJDK也不Zulu OpenJDK知道。如上所述,Azul 提供多种产品,但没有一个是同名的。

Zulu名称用于 3 种产品,即上述社区版和企业版,以及用于在受限硬件资源上运行的Zulu Embedded。正如他们网站上所解释的,所有这三个都是 OpenJDK 源代码的构建。

所以,不,基本上没有实际差异,因为它们都是 OpenJDK 的构建,并且与大多数其他 OpenJDK 源代码构建类似。为符合 Java 规范而编写的任何桌面、服务器或控制台应用程序都将在Zulu CommunityZulu Enterprise上运行。

但是,是的,Azul 在其 Java 8 版本的 Zulu 产品中添加了一些功能,例如向后移植的 Flight Recorder 和 Mission Control 有一些不同之处。与任何此类 JDK 提供商一样,Azul 保留在迫切需要修复严重错误或安全漏洞时添加补丁的权利,而无需等待 OpenJDK 代码库中的发布。

而且,是的,与 Azul 的Zing产品存在重大差异,因为它旨在满足特殊需求,例如支持非常大量的内存。虽然我认为这个产品使用了 OpenJDK 的一部分,但 Zing 在满足这些特殊需求的同时仍然符合 Java 规范以能够运行任何用 Java 编写的应用程序的性能完全不同。

另一个实际的区别是您可以从 Azul Systems 获得支持服务以支持他们的构建。一些供应商为其构建提供支持服务。OpenJDK 只提供源代码,不提供支持。

最后,我应该提到 Azul Systems 是AdoptOpenJDK的赞助商之一,该项目提供 (a) OpenJDK 构建和 (b)质量保证测试套件

如果您有特定的产品问题,您应该研究 Azul.com 网站,并联系 Azul Systems 的销售部门。我在这里只为我自己说话,与那家公司无关。我有时会使用他们的Zulu Community产品,但不会使用其他产品。

➥ 阅读Java 仍然是免费的,以了解 Oracle、OpenJDK 和各种 Java 实现供应商的生态系统。


这是我制作的流程图,可帮助指导您选择实施 Java 11 的供应商。

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

于 2020-04-21T07:19:18.887 回答
26

让我们从全面披露开始,我为 Azul 工作(我认为这使我有资格回答这个问题)。

OpenJDK 是“......在 Java 平台、标准版和相关项目的开源实现上进行协作的地方”。首先,它托管自 JDK 6 以来 Java 版本的源代码存储库。Sun 在 2007 年开源了他们的 JDK 7 实现,这就是 OpenJDK 的起源。随后,为 JDK 6 创建了一个项目(奇怪的是,它基于 JDK 7)。从那时起,每个版本都是通过 OpenJDK 开发的。

Azul 是一家专门从事 Java 和 JVM 产品的公司。

Zulu 是 Azul 为 OpenJDK 的二进制分发选择的名称。这有三个版本:

  1. Zulu 社区:根据 GPLv2 提供的免费发行版,带有类路径异常 (CPE) 许可。
  2. Zulu Enterprise:具有 SLA 的商业支持二进制发行版,用于说明 Oracle 提供更新后的可用速度、每个更新的两个版本(CPU 和 PSU)以及电话/电子邮件错误报告/解决方案。
  3. Zulu Embedded:移植和支持嵌入式应用程序的特定芯片组和硬件配置。此外,它是一个商业产品,尽管 Zulu 社区可以使用免费的 ARM 32 构建。

总而言之,OpenJDK 是源代码,Azul 是公司,Zulu 是从 OpenJDK 构建的二进制发行版。

于 2020-04-21T11:00:12.477 回答