我以某种方式理解Oracle JDK
和Open JDK
之间的差异
但我无法找到使用Open JDK
的理由
因为Oracle JDK
已经拥有了所需的一切,有时甚至比Open JDK
更快。
在某些情况下,有人会使用Open JDK
吗?
它只是针对合法性问题吗?
如果是,那么问题是什么?
那是因为我一直在使用Oracle JDK
答案 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之间的区别。
总结一下:源代码与二进制文件/安装程序。
Oracle实际上提供了两个这样的产品:
Oracle已经宣布打算与OpenJDK保持功能相同的商业产品 Oracle JDK 。 Oracle甚至可以开源并免费提供其以前的商业工具 Mission Control 和 Flight Recorder ,它们现在都是 OpenJDK < / em>。因此,几乎没有实际差异。一个重大区别是,Oracle公司保留快速向其付费支持客户群提供OpenJDK当前未找到的紧急补丁程序的权利。同上其他销售支持的供应商。
这是我制作的流程图,旨在帮助您选择Java实现的提供程序。
这是您选择发行版时可能要考虑的动机清单。
答案 3 :(得分:0)
对于那些在2019年阅读此书的人
Java SE 8是针对桌面部署(例如Java Web Start和独立系统JRE)的最新Java SE版本。 Java SE 8将于2019年1月停止公开更新,此后商业用户需要过渡到其他技术或购买Java SE Subscription。