我莫名其妙地理解之间的差异Oracle JDK和Open JDK.
但我找不到使用的理由Open JDK.
因为Oracle JDK已经拥有了所需的一切,有时甚至更快Open JDK.
有人在哪些情况下使用Open JDK?
它只是针对合法性问题吗?
如果是,那么问题是什么?
那是因为我一直在使用我开发的所有项目Oracle JDK
Bas*_*que 20
其他答案都是正确的。这里还有一些其他信息,包括截至 2021 年初的重要变化。
了解 Oracle JDK 和 Open JDK 之间的区别。
总结一下:源代码与二进制文件/安装程序。
Oracle 实际上提供了两种这样的产品:
Oracle 已经宣布他们打算保持其商业产品Oracle JDK与 OpenJDK 的功能相同。Oracle 甚至开源并免费提供他们以前的商业工具Mission Control和Flight Recorder,它们现在都是OpenJDK的一部分。所以几乎没有实际区别。一个显着的区别是 Oracle 公司保留向其付费支持客户群快速提供 OpenJDK 当前未找到的紧急补丁的权利。其他销售支持的供应商也是如此。
[作为记录,Oracle 提供了第三种 Java 实现GraalVM,这是一个非常专业的产品。]
这是我制作的流程图,以帮助指导您选择 Java 实现的提供者。
这是您在选择发行版时可能会考虑的动机列表。
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构建中.
进一步阅读: