使用OpenJDK的原因是什么?

时间:2017-11-11 09:50:04

标签: java licensing

我以某种方式理解Oracle JDKOpen JDK之间的差异 但我无法找到使用Open JDK的理由 因为Oracle JDK已经拥有了所需的一切,有时甚至比Open JDK更快。

在某些情况下,有人会使用Open JDK吗? 它只是针对合法性问题吗? 如果是,那么问题是什么? 那是因为我一直在使用Oracle JDK

开发我的所有项目

4 个答案:

答案 0 :(得分:7)

2017年11月: 在提出此问题时,在OpenJDK和Oracle JDK之间进行选择的原因包括:

  • 特定平台的构建/安装程序的可用性。例如,上次我检查过" .deb"中没有Oracle JDK发行版。 Debian / Ubuntu的格式。而且没有适用于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版本中。

进一步阅读:

答案 1 :(得分:2)

OpenJDK与分发更新过程紧密集成。例如,在Fedora上,这意味着您只需运行

dnf update

不激活第三方存储库,您将获得包含所有相关修补程序的最新OpenJDK版本。

OpenJDK由分销商在此特定分发上进行测试。 Oracle有不同的参考平台来测试OpenJDK。在Fedora的情况下,用Java编写的软件使用该发行版提供的OpenJDK版本进行测试,而该软件与Oracle JDK的组合测试则少得多。

Oracle还将其Java下载与其他软件捆绑在一起,例如浏览器工具栏,性能测量和监控工具。

答案 2 :(得分:1)

其他答案正确。这里还有一些其他信息,包括截至2019年末的重大变化。

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

  

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

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

  • OpenJDK是一个开源项目,实现了JSJSRsJEPs。该项目仅发布源代码,而不发布二进制文件或安装程序,以使Java在您的计算机上运行。 Oracle与IBM和Red Hat,Apple,SAP,Azul Systems以及其他公司一样,是OpenJDK项目的主要参与者。
  • 许多公司以二进制文件或安装程序的形式提供要安装的OpenJDK发行版。甲骨文就是这样一家公司。

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

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

Oracle已经宣布打算与OpenJDK保持功能相同的商业产品 Oracle JDK 。 Oracle甚至可以开源并免费提供其以前的商业工具 Mission Control Flight Recorder ,它们现在都是 OpenJDK < / em>。因此,几乎没有实际差异。一个重大区别是,Oracle公司保留快速向其付费支持客户群提供OpenJDK当前未找到的紧急补丁程序的权利。同上其他销售支持的供应商。

这是我制作的流程图,旨在帮助您选择Java实现的提供程序。

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

这是您选择发行版时可能要考虑的动机清单。

enter image description here

答案 3 :(得分:0)

对于那些在2019年阅读此书的人

  

Java SE 8是针对桌面部署(例如Java Web Start和独立系统JRE)的最新Java SE版本。 Java SE 8将于2019年1月停止公开更新,此后商业用户需要过渡到其他技术或购买Java SE Subscription

因此,使用OpenJDK的另一个原因(除了Stephen C said之外):出于所有目的,它都是免费的。