使用OpenJDK的原因是什么?

Tur*_*lov 11 java licensing

我莫名其妙地理解之间的差异Oracle JDKOpen JDK.
但我找不到使用的理由Open JDK.
因为Oracle JDK已经拥有了所需的一切,有时甚至更快Open JDK.

有人在哪些情况下使用Open JDK
它只是针对合法性问题吗?
如果是,那么问题是什么?
那是因为我一直在使用我开发的所有项目Oracle JDK

Bas*_*que 20

其他答案都是正确的。这里还有一些其他信息,包括截至 2021 年初的重要变化。

源代码与二进制文件/安装程序

了解 Oracle JDK 和 Open JDK 之间的区别。

总结一下:源代码二进制文件/安装程序

  • OpenJDK是一个开源项目,实现了定义Java 平台Java 规范 JSRJEP。该项目发布源代码,而不发布二进制文件或安装程序,以使 Java 在您的计算机上运行。Oracle 是 OpenJDK 项目的主要参与者,此外还有 IBM 和 Red Hat、Apple、SAP、Azul Systems 等。
  • 许多公司以二进制文件或安装程序的形式提供用于安装的 OpenJDK 发行版。甲骨文就是这样一家公司。

Oracle 实际上提供了两种这样的产品:

  • Oracle JDK
    具有付费支持计划的商业产品。(免费仅用于开发和测试,不适用于部署。阅读他们的条款。)
  • jdk.java.net
    OpenJDK 源代码的构建,免费提供,不受支持。

Oracle 已经宣布他们打算保持其商业产品Oracle JDK与 OpenJDK 的功能相同。Oracle 甚至开源并免费提供他们以前的商业工具Mission ControlFlight Recorder,它们现在都是OpenJDK的一部分。所以几乎没有实际区别。一个显着的区别是 Oracle 公司保留向其付费支持客户群快速提供 OpenJDK 当前未找到的紧急补丁的权利。其他销售支持的供应商也是如此。

[作为记录,Oracle 提供了第三种 Java 实现GraalVM,这是一个非常专业的产品。]

这是我制作的流程图,以帮助指导您选择 Java 实现的提供者。

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

这是您在选择发行版时可能会考虑的动机列表。

选择 Java 供应商的动机

  • 先生,图表很棒。这值得大量的赞成票。源代码和安装程序之间的区别让我觉得很有趣。 (3认同)

Ste*_*n C 10

2017年11月: 当问到这个问题时,在OpenJDK和Oracle JDK之间进行选择的原因包括:

  • 特定平台的构建/安装程序的可用性.例如,我上次检查时没有用于Debian/Ubuntu的".deb"格式的Oracle JDK发行版.而且没有适用于Windows的OpenJDK版本.

  • Oracle JDK具有一些商业功能,可以由付费的人启用.它们不在OpenJDK上.

  • Oracle JDK有一个恼人的点击许可证.如果您尝试自动部署,这会很痛苦; 例如,云虚拟机.相比之下,可以使用平台的包管理器安装和更新Linux上的OpenJDK(至少).

  • 如果您想要OpenJDK的商业支持,可能会出现问题.

没有实质性的Oracle JDK和OpenJDK的之间的差异许可证,如果你只打算使用该软件.(Oracle JDK的二进制重新分发存在一些限制,但它们是关于运送Java平台的非标准版本或精简版本.)

根据这个博客页面,将来会有一些差异消失:


2018年12月更新:

  • 截至2019年1月,Oracle JDK Java 8将用于商业用途.(但免费支持将持续到2020年1月供个人使用.)

  • Java 9和Java 10是EOL.

  • Oracle JDK Java 11及更高版本的商业用途需要支持合同或Oracle的订阅.OpenJDK Java版本没有此要求.

  • Oracle不提供对OpenJDK Java版本的支持,但可以从第三方获得支持.第三方还将Oracle安全修复程序移植到OpenJDK构建中.

进一步阅读: