百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Oracle JDK vs OpenJDK

liuian 2025-04-27 14:43 49 浏览

Oracle JDK vs OpenJDK

可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK 。那么 Oracle JDK 和 OpenJDK 之间是否存在重大差异?下面我通过收集到的一些资料,为你解答这个被很多人忽视的问题。

首先,2006 年 SUN 公司将 Java 开源,也就有了 OpenJDK。2009 年 Oracle 收购了 Sun 公司,于是自己在 OpenJDK 的基础上搞了一个 Oracle JDK。Oracle JDK 是不开源的,并且刚开始的几个版本(Java8 ~ Java11)还会相比于 OpenJDK 添加一些特有的功能和工具。

其次,对于 Java 7 而言,OpenJDK 和 Oracle JDK 是十分接近的。 Oracle JDK 是基于 OpenJDK 7 构建的,只添加了一些小功能,由 Oracle 工程师参与维护。

下面这段话摘自 Oracle 官方在 2012 年发表的一个博客:

问:OpenJDK 存储库中的源代码与用于构建 Oracle JDK 的代码之间有什么区别?

答:非常接近 - 我们的 Oracle JDK 版本构建过程基于 OpenJDK 7 构建,只添加了几个部分,例如部署代码,其中包括 Oracle 的 Java 插件和 Java WebStart 的实现,以及一些闭源的第三方组件,如图形光栅化器,一些开源的第三方组件,如 Rhino,以及一些零碎的东西,如附加文档或第三方字体。展望未来,我们的目的是开源 Oracle JDK 的所有部分,除了我们考虑商业功能的部分。

最后,简单总结一下 Oracle JDK 和 OpenJDK 的区别:

  1. 是否开源:OpenJDK 是一个参考模型并且是完全开源的,而 Oracle JDK 是基于 OpenJDK 实现的,并不是完全开源的(个人观点:众所周知,JDK 原来是 SUN 公司开发的,后来 SUN 公司又卖给了 Oracle 公司,Oracle 公司以 Oracle 数据库而著名,而 Oracle 数据库又是闭源的,这个时候 Oracle 公司就不想完全开源了,但是原来的 SUN 公司又把 JDK 给开源了,如果这个时候 Oracle 收购回来之后就把他给闭源,必然会引起很多 Java 开发者的不满,导致大家对 Java 失去信心,那 Oracle 公司收购回来不就把 Java 烂在手里了吗!然后,Oracle 公司就想了个骚操作,这样吧,我把一部分核心代码开源出来给你们玩,并且我要和你们自己搞的 JDK 区分下,你们叫 OpenJDK,我叫 Oracle JDK,我发布我的,你们继续玩你们的,要是你们搞出来什么好玩的东西,我后续发布 Oracle JDK 也会拿来用一下,一举两得!)OpenJDK 开源项目:https://github.com/openjdk/jdk 。
  2. 是否免费:Oracle JDK 会提供免费版本,但一般有时间限制。JDK17 之后的版本可以免费分发和商用,但是仅有 3 年时间,3 年后无法免费商用。不过,JDK8u221 之前只要不升级可以无限期免费。OpenJDK 是完全免费的。
  3. 功能性:Oracle JDK 在 OpenJDK 的基础上添加了一些特有的功能和工具,比如 Java Flight Recorder(JFR,一种监控工具)、Java Mission Control(JMC,一种监控工具)等工具。不过,在 Java 11 之后,OracleJDK 和 OpenJDK 的功能基本一致,之前 OracleJDK 中的私有组件大多数也已经被捐赠给开源组织。
  4. 稳定性:OpenJDK 不提供 LTS 服务,而 OracleJDK 大概每三年都会推出一个 LTS 版进行长期支持。不过,很多公司都基于 OpenJDK 提供了对应的和 OracleJDK 周期相同的 LTS 版。因此,两者稳定性其实也是差不多的。
  5. 协议:Oracle JDK 使用 BCL/OTN 协议获得许可,而 OpenJDK 根据 GPL v2 许可获得许可。

既然 Oracle JDK 这么好,那为什么还要有 OpenJDK?

答:

OpenJDK 是开源的,开源意味着你可以对它根据你自己的需要进行修改、优化,比如 Alibaba 基于 OpenJDK 开发了 Dragonwell8:
https://github.com/alibaba/dragonwell8OpenJDK 是商业免费的(这也是为什么通过 yum 包管理器上默认安装的 JDK 是 OpenJDK 而不是 Oracle JDK)。虽然 Oracle JDK 也是商业免费(比如 JDK 8),但并不是所有版本都是免费的。OpenJDK 更新频率更快。Oracle JDK 一般是每 6 个月发布一个新版本,而 OpenJDK 一般是每 3 个月发布一个新版本。(现在你知道为啥 Oracle JDK 更稳定了吧,先在 OpenJDK 试试水,把大部分问题都解决掉了才在 Oracle JDK 上发布)

基于以上这些原因,OpenJDK 还是有存在的必要的!

Oracle JDK 和 OpenJDK 如何选择?

建议选择 OpenJDK 或者基于 OpenJDK 的发行版,比如 AWS 的 Amazon Corretto,阿里巴巴的 Alibaba Dragonwell。

拓展一下:

  • BCL 协议(Oracle Binary Code License Agreement):可以使用 JDK(支持商用),但是不能进行修改。
  • OTN 协议(Oracle Technology Network License Agreement):11 及之后新发布的 JDK 用的都是这个协议,可以自己私下用,但是商用需要付费。

相关推荐

电脑硬盘数据恢复工具(电脑硬盘数据恢复多少钱一次)

只要是正版的数据恢复软件都会收费,如果想免费的话可以安装一个迷你兔数据恢复软件试试,因为它提供了200M的免费恢复额度,如果你的恢复需求不大,那就可以免费恢复

u盘有必要分区吗

分区好U盘分区的主要作用是将一个物理上的U盘分为多个逻辑上的独立区域,每个区域可以单独管理和使用。这样做的好处是可以将不同类型的文件分别存放在不同的分区中,提高文件的组织性和管理效率。例如,可以将工作...

优盘怎么做系统启动盘(优盘怎么做系统启动盘教程)

1/4分步阅读将U盘插上电脑,打开运行在电脑上下载好的小白一键重装系统软件,打开前退出所有杀毒软件,避免杀毒软件阻拦操作步骤。点击左侧“制作系统”,然后检测U盘后点击“开始制作”按钮。2/4在选择系统...

win7激活错误0 80072f8f(win7激活时发生错误,错误代码0x80072f8f)
win7激活错误0 80072f8f(win7激活时发生错误,错误代码0x80072f8f)

可以通过修改时间来解决系统提示0x80072F8F错误代码的操作方法。操作步骤1、鼠标点击时间,选择更改日期和时间设置,方法如下。2、在窗口中,选择internet时间,点击更改设置,方法如下。3、接着在窗口中,勾选与internet时间服...

2026-01-17 03:37 liuian

电脑如何进入bios模式(电脑怎么样进入bios)

电脑进入BIOS的方法1、按住F1电脑品牌:IBM、东芝、脸型thinkpad部分型号、toshiba等等这些型号电脑在开机时,按住键盘上的F1按键,那么它就会进入到BIOS的设置洁面中,需注意thi...

电脑如何设置虚拟内存(电脑怎么设虚拟内存怎么设最好)

进入系统打开控制面板后展开所有控制面板项,点击进入系统。修改虚拟内存点击高级系统设置后点击性能下的设置,点击高级后更改虚拟内存。设置数值将虚拟内存设置为自定义大小,具体数值最好是实际内存容量的一点五倍...

我的电脑图标打不开(电脑上图标消失了怎么恢复)

如果电脑点击图标没反应,首先看一下是不是鼠标左键的问题,左键出现故障图标往往是没有反应的,其次你把这些图标连一下,你看能不能画起来,如果无法划起来就是鼠标坏了,相反如果鼠标可以操作,但是电脑无法连接着...

联想y系列和r系列(联想7000)

联想y系列和r系列都好。其中r系列搭载的一般都是AMD锐龙处理器,y系列一般搭载的是英特尔处理器。希望我的回答对你有帮助一般情况下的话,联想笔记本电脑它的R系列和wy系列的画相比较来说是y系列,要稍微...

不激活win7有什么影响(不激活windows7会怎样)

如果Windows7未激活,会出现以下几种情况:1.桌面背景将变成黑色,每隔一段时间就会自动恢复成黑色。2.会弹出提示框,提醒用户需要激活Windows7。3.无法更新Windows,包括安...

超强升级系统 小说(超强升级系统 小说免费阅读)

女主柳洛溪,宋千千,肖甜甜,叶紫嫣,伏芸珊,南宫燕,菲菲,媛灵。狂暴系统的拥有者,龙家崛起的推动者,龙族守护者,天武大陆上屠魔者,新任远古界界王。前世为远古世界第一人,与远古世界一同孕育...

win11暂停更新点不了(win11设置永不更新)

win11更新不能暂停了是设置错误导致的,解决方法如下1、首先右键单击此电脑,选择管理。2、然后在中点击服务和应用程序。3、在弹出的列表中继续点击服务。4、在服务的右侧找到windowsupdate...

win10专业版下载速度慢(电脑win10下载速度慢)

由于是官方网址同时浏览该网址的网民非常多由于传输速率一定导致每个人的下载速率会变慢,可以错开高峰期如中午等,可以等到晚上或者早上期间进行下载。Win10系统浏览网页慢解决办法:1.在win10系统桌...

电脑关机总是关不掉(电脑关机一直关不掉怎么办)

电脑怎么关不了机是为什么电脑无法关机是因为还有软件在后台运行干预导致。鼠标右键点击计算机,选择属性,左侧菜单中选择高级系统设置,点击高级选项卡界面下方,启动和故障修复下的设置,取消勾选自动重新启动,点...

apple id是什么(appleID是什么意思)
apple id是什么(appleID是什么意思)

AppleID是苹果公司为其产品,如iWork、iTunesStore和AppleStore所引入的认证系统,使用Apple各项服务所需的用户名,就像是一把钥匙一样。有了AppleID,才能在苹果手机、平板电脑等设备上,使用苹...

2026-01-17 01:05 liuian

一键重装系统的软件有哪些(一键重装系统软件排行榜)

具体如下:一、韩博士装机大师韩博士装机大师是一款傻瓜式一键装系统工具,一键智能重装原版系统,无需光驱,无需U盘,零技术基础,傻瓜式操作,流水线流程,智能安装,完美支持GPT与win10平板!一款功能强...