由于 Oracle JDK 需要为生产环境付费,我想知道 OpenJDK/AdoptOpenJDK 是否也给我同样的稳定性。我读到 Oracle 正在开发 OpenJDK,因为我建议 OpenJDK 11 与 Oracle JDK 11 一样稳定。但我在这方面没有经验。另一个问题是:对于稳定的 serie 11,OpenJDK 和 AdoptOpenJDK 之间的主要区别是什么?您更喜欢在生产环境中使用什么?在那里,如果有人可以建议我,我会很高兴。
1 回答
2021-09 更新
- 对于版本 8 到 16,如果 Oracle 自己的Oracle JDK产品用于生产,则 Oracle 需要付费,但对于开发、测试和培训用途则不需要。
- 对于 Java 17,Oracle JDK产品在新 的免费条款和条件许可下可用, Oracle 公司博客上对此进行了讨论。
在我的第一次阅读中,似乎这个新许可证使生产使用免费(以及开发、测试和培训使用),但捆绑 Oracle JDK 产品时收费出售的产品除外。但我不是律师,因此请自行阅读条款并根据需要咨询法律建议。
请记住,许多其他供应商继续提供 Java 规范的实现,如下面的流程图所示。其中一些供应商出售支持计划,可选择或作为使用其产品的要求。永远不要假设,始终阅读您获得的任何发行版的详细要求。
2021 年的另一个更新:将 Microsoft 添加到下面的供应商列表中。
tl;博士
Oracle和Adoptium(以前称为AdoptOpenJDK)只是提供构建和安装程序的几个供应商中的两个。
今天可用的所有 Java 实现都完全或基本上基于OpenJDK项目提供的源代码。它们都应显示出Java 平台 规范所承诺的相同兼容性、稳定性和功能。
您可以选择提供一种或多种 Java 平台实现的多家供应商。其中一些在某些情况下需要付费,而有些是免费的。根据他们的支持和报废政策,所有这些都是高质量的并且经常更新。
没有最好的供应商或产品;根据您的需要进行选择。
细节
OpenJDK是一个托管Java 平台规范的开源实现的项目。该项目由 Oracle、IBM、Apple、Red Hat、Azul Systems、SAP 等运营。这个项目只提供源代码,不提供完整的构建,也不提供方便的安装程序。
许多供应商提供基于 OpenJDK 的构建。大多数是直接构建,几乎没有附加价值,但供应商有权包含修复或功能,只要他们遵守许可条款。
甲骨文就是这样的供应商之一。Oracle 提供三种产品:
- 为他们的付费客户提供Oracle JDK (对其他进行开发和测试但不进行部署的人免费)
- jdk.java.net,OpenJDK 的构建,直接且完全基于 OpenJDK 源代码,没有附加值。免费提供且不受支持。
- GraalVM,一个非常特殊的 Java 实现,有免费版本或收费版本。
Oracle 已宣布他们打算使Oracle JDK与OpenJDK保持功能平等。他们甚至向 OpenJDK 项目捐赠了一些商业产品,例如Mission Control和Flight Recorder 。因此,您应该期待同样的稳定性、速度和特性——除了 Oracle 保留在有保证的情况下更快地将其受支持产品的补丁版本交付给付费客户的权利。提交到 OpenJDK 并在那里获得发布可能需要更多时间。
甲骨文并不是唯一一家生产 Java 版本的供应商,无论是否提供付费支持选项。一些个别公司提供有和/或没有付费支持的构建。Java 社区的主要成员共同努力,创建了Adoptium项目,以前称为AdoptOpenJDK.net,现在位于 Eclipse 基金会。该项目托管用于构建和测试各种硬件和操作系统平台的 OpenJDK 构建的基础架构,其中一些平台提供HotSpot和OpenJ9 JVM之间的选择。请参阅OpenJDK 和 AdoptOpenJDK 之间的区别。
这是我制作的流程图,可以帮助您选择 Java 实现的供应商。
这里没有错误的选择。据我所知,所有这些供应商都在构建、发布和更新他们的版本方面做得很好。但这里有一些考虑因素可能会将您引导至特定供应商。