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

Kri*_*han 25 java azul-zulu

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

Bas*_*que 34

Java 由一组规范JSRJEP 定义,所有这些规范都由 Oracle 发布。

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

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

Azul Systems就是这样的一个供应商,一家提供多种实现的公司。Zulu Community就是其中之一,免费提供。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 产品。与任何此类 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 is Still Free以了解 Oracle、OpenJDK 和各种 Java 实现供应商的生态系统。


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

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

  • Oracle 不发布 JSR 或 JEP。Java 规范请求由 Java Community Process (JCP) 发布。JDK 增强提案已在 OpenJDK 项目上发布。任何在 OpenJDK 上具有提交者身份的人都可以提交 JEP。 (2认同)
  • 我的措辞很糟糕,因为它的目的是作为反馈而不是批评。(我对你的回答的详细程度感到惊讶。) (2认同)

Spe*_*ava 14

让我们从全面披露开始,我为 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 构建的二进制发行版。