2017-11-11 187 views
6

我以某种方式理解Oracle JDK和Open JDK之间的差异。但我找不到使用Open JDK的理由,因为Oracle JDK已经拥有了所需的一切,有时甚至比Open JDK更快。使用OpenJDK的原因是什么?

某人应该在什么情况下使用Open JDK?仅仅是为了法律问题,如果是的话那么什么问题呢?正如我一直在使用Oracle JDK开发我的所有项目一样。

+0

没有区别了。 [OpenJDK自Java 9 GA以来是OracleJDK](https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se)。 –

+0

@BoristheSpider,非常感谢你的文章。我了解Oracle试图消除技术差异。但是我仍然不明白什么情况会阻止我使用Oracle JDK?或者使用Open JDK代替Oracle JDK的原因。如果他们提供相同的功能并且完全相同,那么分离实现的原因是什么?Oracle可以使其代码开放并可用。 –

+0

他们已经完成了。这就是文章所说的。 –

回答

6

眼下,原因的OpenJDK和Oracle JDK之间进行选择包括:建立的

  • 可用性/安装特定的平台。例如,上次我检查了Debian/Ubuntu的“.deb”格式没有Oracle JDK发行版。 OpenJDK没有为Windows构建。

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

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

  • 如果您想为OpenJDK提供商业支持,可能会有问题。

有甲骨文的JDK和OpenJDK的之间没有实质性许可证差别,如果你只是打算使用该软件。 (对于Oracle JDK,二进制再分发有一些限制,但它们是关于发送非标准或精简版Java平台的。)

将来,根据这一点,这些差异中的一部分将消失博客页面:

2

OpenJDK紧密集成了分发更新过程。例如,在Fedora上,这意味着你根本就没有启动第三方仓库运行

dnf update 

,你会得到最新版本的OpenJDK与所有相关补丁。

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

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

+1

对不起,也许对其他问题显而易见。但是,“分发更新过程”是什么意思?你在说什么分布? “分销商”是什么意思?所有在Open JDK上工作的人? –

+0

人们通常使用Debian/Red Hat/SuSE/Ubuntu提供的OpenJDK。如果你在Windows上,所有这些可能没有什么意义。 (你的问题没有说这个。) –

+0

我使用Fedora。为什么它对Windows没有意义? Windows对此有特殊权利吗?我甚至不知道我错过了什么。 –

相关问题