什么是OracleJDK
本篇内容介绍了“什么是Oracle JDK”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
成都创新互联专注于企业全网整合营销推广、网站重做改版、兴宁网站定制设计、自适应品牌网站建设、HTML5、成都做商城网站、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为兴宁等各大城市提供网站开发制作服务。
1.Oracle JDK 是什么?
我们知道,JDK 是 Java Development Kit 的缩写,翻译过来就是 Java 开发工具包。
Oracle JDK 源自 Sun JDK(2009年 Oracle 收购 Sun),Oracle JDK 自然就是 Oracle 公司出品的 JDK。所以 Oracle JDK 就是 Oracle 公司开发维护的 Java 开发工具包。 但是只是这样理解未免太片面了一点。
根据 Java Platform Group 产品管理高级总监 Donald Smith 在" Oracle JDK Releases for Java 11 and Later "中的描述:
因为本人英语烂到了令人发指的地步,为了避免浪费时间和不必要的翻译错误,这里就简单引用谷歌翻译的结果方便粗略理解:
理想情况下,我们会根据您的情况将所有 Oracle JDK builds 简单地称为 GPL 或商业许可下的 "Oracle JDK",但是,由于历史原因,尽管存在很小的差异,但我们将在 Oracle's OpenJDK builds 和 Oracle JDK 中分别引用它们。
根据以上内容,我们可以知道 Oracle JDK builds 实际上包括了一个开源版本的 Oracle's OpenJDK builds(基于 GPL 开源)和商业版本的 Oracle JDK builds,但是因为其本身写法繁琐和对开发没有多大作用,外界一般把他们粗略称为Open JDK和 Oracle JDK。(胡乱简写害死人系列,这是下一章的一个坑)
所以由此可知,Oracle JDK 实际上有几种含义:
由 Oracle 公司推出的商业 JDK (最常用)
由 Oracle 公司推出的 JDK (Oracle JDK builds下所有的 JDK)
Oracle JDK builds
在大部分情况下的 Oracle JDK 指的是 Oracle 公司推出的商业版 JDK。
2.Oracle JDK 版本如何选择?
说到 Oracle JDK 该怎么选择 ,这就不得不提到 Oracle JDK 发布的众多版本了。
要是有兴趣可以去 Java发展历程 看看 Oracle JDK 到底有哪些版本。
截止目前:2021年5月4日,Oracle JDK一共有17个大版本。在众多版本中如何选择适合的版本进行使用,就成了一个比较头痛的问题。要想知道究竟哪个版本适合自己,就必须得先了解一下 Java SE 的发布节奏以及每个版本间的差距。
1.Java SE 发布节奏以及不同版本的差距
1.Java SE 8 以及之前版本的发布节奏和不同版本的差距
根据 Java CPU and PSU Releases Explained里面的描述:
1.发布的版本区别
CPU(Critical Patch Updates):关键补丁更新(CPU)包含对安全漏洞和关键错误的修复。Oracle 强烈建议所有 Java SE 用户升级到最新的 CPU 版本。Java SE CPU 版本是奇数版本(即7u71、7u65–请参阅此处有关Java SE版本编号方案的更多信息)。
PSU(Patch Set Updates):补丁集更新(PSU)包含相应 CPU 中的所有修复,以及其他非关键修复。只有当您受到该版本中修复的其他错误之一的影响时,才应使用Java PSU版本。Java SE PSU 版本是偶数版本,版本说明中列出了Java SE PSU 发行版中提供的其他修复程序。
PS:
Oracle 强烈建议所有 Java SE 用户升级到一个版本系列的最新 CPU 版本。大多数用户应该选择 CPU 版本。
如果用户受到版本说明中所述的该版本中修复的其他错误之一的影响,则只能使用相应的 PSU 版本。
随后的 CPU 版本将包含当前 PSU 的所有修复程序。因此,组织应在其环境中测试当前 PSU ,以预期这些修复将包含在下一个 CPU 中。
从2014年10月开始,随着 Java SE 7u71(CPU)和 Java SE 7u72(PSU)的发布,Oracle 计划在 Java SE 7的每个 CPU 发布版本的同时,额外发布一个相应的 PSU 版本。
2.发布周期
Java 每两年发布一次,直到 Java 6于2006年12月23日在 Sun 下发布为止。由于政治上的僵局,下一个版本是2011年7月28日发布的 Java 7。
在2012年3月7日于伦敦举行的 QCon 2012 大会上,前 Sun Microsystems 负责人、现任 Oracle Java 产品经理 Simon Ritter 承诺 Java 将回到两年的发布周期。
但在2013年4月18日时,Oracle 公司 Java Platform Group 首席架构师 Mark Reinhold 在博客中表示:Oracle 计划将 Java 8 的计划发布推迟到明年,理由是为了修复 Java 的安全漏洞。
3.版本的关系
版本内的更新:例如:Java 8 > Java 8u20 > Java 8u40,大多是对一些安全漏洞的修复和小型功能更新,版本间差距较小(除安全漏洞外)。
版本间的更新:例如:Java 6 > Java 7> Java 8,有较大修改、更新和安全漏洞修复,和传统版本一样,每一个数字的变动都是一次巨大的改革,版本间差距巨大。
2.Java SE 9 以及之后版本的发布节奏和不同版本的差距
根据 Java Platform Group 产品管理高级总监 Donald Smith 在" Update and FAQ on the Java SE Release Cadence "中的描述以及 Oracle Java SE Support Roadmap 的描述,提炼出我们需要的部分:从 Java SE 9 开始 Java 开启了一个新的版本控制和发布节奏模型。
1.发布的版本区别
LTS版本(Long Term Support,长期支持版本),提供至少八年的商业支持(根据市场需要有可能会延长),到期后会被新的 LTS 版本取代。
non-LTS版本(non Long Term Support,非长期支持版本),提供六个月的商业支持,到期后会被新发布的版本取代。
2.发布周期
整体发布周期为每六个月发布一版,其中:
LTS版本:每三年发布一版
non-LTS版本:每六个月发布一版
PS:
当二者发布时间冲突时,优先发布LTS版本,non-LTS版本向后推迟一个周期。
3.版本的关系
版本内的更新:例如:Java 11 > Java 11.0.1 > Java 11.0.2,大多是对一些安全漏洞的修复,版本间差距几乎没有(除安全漏洞外)。
版本间的更新:例如:Java 9 > Java 10 >Java 11更接近于从 Java 8 > 8u20 > 8u40,每六个月发布一次的 non-LTS 版本更像"主要版本"的"功能发布",LTS版本更像是主要版本,而non-LTS版本更像是包含上一个LTS版本的测试版本,版本间差距较大。
2.Oracle JDK收费吗?
知道了 Java SE 发布节奏以及不同版本的差距之后,最能影响人们做出选择的应该就是价格问题了。 没错了,Oracle JDK 也是要收费的,不过并不是所有版本都收费,也不是所有用途都收费。
从 Java 的历史版本中我们可以看到一个有趣的现象,Java SE 8 这个标题出现了两次,分别是Java SE 8u202和之前版本和Java SE 8u211和之后的版本。
为什么会出现这个现象呢?
Java SE 8u201(CPU)/8u202(PSU)以及之前的版本使用的是 Binary Code License Java SE 8u211(CPU)/8u212(PSU)以及之后的版本使用的是 Java SE OTN License
因为这两个许可证有着巨大的区别,所以硬生生的把 Java SE 8 硬生生分成了两个部分,根据这两个许可证长篇累牍的描述结合 RednaxelaFX 在 Oracle 终于要向 Java 的非付费用户开枪了-怎么看?和 采用java开发商业软件需要给Oracle付钱吗?两个问题的回答提炼出了几个要点。
许可证 | 免费学习 | 免费个人使用 | 免费开发 | 免费测试 | 免费商业功能 | 免费商业使用 | 免费在台式机/笔记本上使用 | 免费在服务器上使用 | 免费嵌入式设备和其他计算环境上使用 |
---|---|---|---|---|---|---|---|---|---|
Binary Code License | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✔ | ✘ |
Java SE OTN License | ✔ | ✔ | ✔ | ✔ | - | ✘ | ✔ | ✘ | ✘ |
PS:
商业功能指的是 Oracle JDK 自带的 HotSpot VM 的启动参数中是否有 -XX:+UnlockCommercialFeatures,如果有 -XX:+UnlockCommercialFeatures 就代表启动了商业功能,这个功能默认是关闭状态,需要手动开启(在Java 11中被废除)。
Java Flight Recorder(JFR) 已经加入Open JDK 11,在Open JDK 11/bin下可以直接启动,或者在 HotSpot VM 的启动参数中加上 -XX:StartFlightRecording。
采用 Binary Code License 的 Java 8u201/8u202及其之前的版本,个人使用和商用几乎都是免费的(不使用商业功能和嵌入式设备的情况下)。
采用 Java SE OTN License 的 Java 8u211/8u212及其之后的版本,个人使用免费,商用就要购买许可证才可以(虽然可以偷偷商用,不过那种操作就跟裸奔过雷区一样,你也不知道啥时候会灰飞烟灭,也不知道 Oracle 会不会等养肥了再宰)。
“什么是Oracle JDK”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
网站题目:什么是OracleJDK
网页路径:http://scyanting.com/article/ggppei.html