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

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

74836 次浏览

更新2021-09

  • 对于版本8到16,如果在生产中使用 Oracle 自己的 Oracle JDK产品,Oracle 需要收费,但是开发、测试和培训使用不需要。
  • 对于 Java17,Oracle JDK产品在一个新的 免费的条款和条件 许可证,< a href = “ https://blogs.Oracle.com/cloud-Infrastructure/post/guide-free-java-License”rel = “ norefrer”> 在 Oracle 上讨论过 公司博客

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

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

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


Java 规范与实现

Java 由一个 一套规格说明书JSR日本人定义,所有这些都由 Oracle 发布。

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

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

Azul Systems 就是这样一家提供多种实现的公司。祖鲁社区是其中之一,免费提供。祖鲁企业号是他们的另一种产品,一种商业产品。是他们的另一个产品,一个满足特殊需求的 JVM/JDK。

你问:

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

是也不是。

首先,OpenJDK 只提供了 < a href = “ https://en.wikipedia.org/wiki/Source _ code”rel = “ noReferrer”> source code 。因此,您不能使用 OpenJDK 来运行 Java 应用程序。您必须首先自己构建 OpenJDK 源代码,以便为特定的主机平台获取 可执行文件,否则必须依赖供应商为您构建。如下面的流程图所示,有几家这样的厂商正在构建 OpenJDK 源代码。

至于 Azul 系统公司的产品,据我所知没有 Azul OpenJDKZulu OpenJDK这样的东西。Azul 提供多种产品,如上所述,但没有一种是以这个名字命名的。

Zulu名称用于3个产品,上面的 社区进取号版本,加上用于在受限制的硬件资源上运行的 祖鲁嵌入。正如在他们的网站上解释的那样,所有这三个都是 OpenJDK 源代码的构建。

所以,不,基本上没有实际的区别,因为它们都是 OpenJDK 的构建,并且行为类似于大多数其他构建的 OpenJDK 源代码。任何符合 Java 规范的桌面、服务器或控制台应用都可以在 祖鲁社区祖鲁企业上运行。

但是,没错,Azul 在他们的 Java 8版本的 Zulu 产品中增加了一些特性,比如后端移植的 Flight Recorder 和 Mission Control。而且,像任何这样的 JDK 提供商一样,Azul 保留在迫切需要修复关键缺陷或安全漏洞时添加补丁的权利,无需等待 OpenJDK 代码库中的发布。

而且,是的,Azul 的 太棒了产品有很大的不同之处,因为它是为特殊需求而设计的,例如支持非常大量的内存。虽然我假设这个产品使用了 OpenJDK 的一部分,但是 Zing 在满足这些特殊需求的同时仍然符合 Java 规范,从而能够运行任何用 Java 编写的应用程序。

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

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

如果你有具体的产品问题,你应该研究 Azul.com 的网站,并与 Azul 系统的销售部门联系。我在这里只代表我自己,与那家公司无关。我有时使用他们的 祖鲁社区产品,但没有其他。

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


下面是我制作的一个流程图,以帮助您选择 Java11实现的供应商。

Flowchart guiding you in choosing a vendor for a Java 11 implementation

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

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

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

Zulu 是 Azul 提供的 OpenJDK 的二进制发行版的名称。它有三个版本:

  1. Zulu 社区: 在 GPLv2下提供的带有类路径异常(CPE)许可的免费发行版。
  2. Zulu 企业版: 一个商业支持的二进制发行版,带有 SLA,可以在 Oracle 提供更新、每个更新的两个版本(CPU 和 PSU)以及电话/电子邮件错误报告/解决方案之后快速更新。
  3. Zulu 嵌入式: 移植和支持针对嵌入式应用程序的特定芯片组和硬件配置。此外,一个商业产品,虽然免费的 ARM 32构建可用于祖鲁社区。

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