阿里、华为和微软等多家国内外厂商组团搞OpenJDK,Oracle为啥不参加?-程序员宅基地

技术标签: jdk  python  java  人工智能  编程语言  

Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记!

阿里、华为和微软等多家国内外厂商组团搞OpenJDK,还问Oracle为啥不参加?

近日,Eclipse 基金会和 Adoptium 工作组宣布搞了一件大事情,这件事情应该是Oracle不喜欢的,就是推出了一个叫做Adoptium Marketplace的项目,简单翻译就是Adoptium 市场!

这是干嘛的?市场嘛,肯定是展示或者销售一些东西,而这个Adoptium Marketplace则是给大家提供经过严格测试的符合标准的高质量Java二进制文件,简单点,就是给你提供JDK和JRE供你下载,全部都是基于OpenJDK!

目前Adoptium Marketplace已正式开放,可以下载了:

7be8d676e1d97c2591eb68faaa65b357.png

不过我发现这个Adoptium Marketplace目前只提供JDK的长期支持版本下载,也就是如下三个LTS版本:

8631246addad6310d26414e838916b33.png

那说到这里,有些人肯定不太明白,有点云里雾里,那必须给你普及一些知识了!

LTS

首先就是Java的LTS的版本,目前主要有如下这几个:

  1. Java SE 8(LTS)

  2. Java SE 11(LTS)

  3. Java SE 17(LTS)

那这个是啥意思呢?这还不简单,这是Java的长期支持版本,没错,LTS代表长期支持版本,目前Java中已经发布的Java8,11和17是长期支持版本,那么,你可知道长期支持版本的发布周期呢?

我们来看,目前三个出现的长期支持版本的发布时间:

  1. Java 8 是2014年发布

  2. Java 11是2018年发布

  3. Java 17是2021年发布

那么你说Java长期支持版本的发布周期是多少呢?四年还是三年?我告诉你吧,是三年,何以证明,我们可以从官方网站上找到说明:看图

ab953a116ce95495c84b56f0a377d8ee.png

以上描述出现在oracle官网中的“oracle Java SE支持路线图”中,也就是这里:

2dd1a0a1f24b2b96d397b45832ee63d6.png地址是:https://www.oracle.com/java/technologies/java-se-support-roadmap.html

ok,那么现在我们了解到Java的长期支持版本是每三年发布一次,但是下一个长期版本21将在2023年9月发布,有消息称长期支持版本将改为两年一次,我就想说,这个Oracle办事……

OpenJDK和Oracle JDK

首先,你要知道,我们平常说的JDK,大多数指的是Oracle JDK,也可以说,Oracle JDK是最正宗的JDK,这意思就是说还有其他的JDK!

我们知道,Java源于Sun公司,但是后来经营不善,被收购了,看一张图:

2bfe075e4ae3041dfddc60b4ed91b5f8.png

也就是说在1998年到2006年之间吗,这是属于Sun公司的时代,在2006年的时候,Sun公司选择开源JDK的源代码,当然去除了一些闭源特性,这就是现在我们常说的OpenJDK(是不是感觉自己大限将至,赶紧开源出去?)

那在2009年的时候,Sun公司就被Oracle给收购了,此时这个Java就是Oracle说的算了!

Sun被oracle收购之后,在2011年发布了Java7,这一年,Oracle承诺回到以前每两年发布一次的发布周期。但是,就要到了2013年的时候,oracle却宣布Java延期发布,说是有漏洞,在修复,于是最终Java8是在2014年发布的。

也就是Java7到Java8是隔了三年,那到了发布Java9的时候也是隔了三年,是在2017年发布的,这是不是意味着oracle不再遵循sun之前的每两年发布一次,而是三年发布一次呢?

事情有了转机,在2017年Java9发布之后,Java平台的主架构师 Mark Reinhold 发出提议,要求将Java的功能更新周期从之前的每两年一个新版本缩减到每六个月一个新版本。该提议获得了通过,并在提出后不久生效。

于是从Java9开始就是每6个月发布一次新版本了,但是此前oracle想要每三年发布一次版本的念头还没有打消,于是乎,你猜的没错,就是LTS版本的发布周期……

2006年Sun公司开源出去的Java源码形成了至关重要的社区组织,也就是OpenJDK,在Oracle收购Sun公司之后,这个OpenJDK也被Oracle接管了!

两者区别

我们一般说的JDK自从sun被oracle收购之后,指的就是oracle JDK了,那这个与OpenJDK有啥区别呢?

Java Development Kit(JDK)是sun公司搞出来的,在2006年sun公司决定将其开源,但是在JDK中的源码有一部分是商业源码,就是JDK中的源码不全是sun公司的,那这块代码sun公司是无权将其开源的,这些代码被称为闭源的一些特性,但是sun还是讲这部分闭源特性给去掉将JDK源码开源了。

但是由于开源后的代码少了一些闭源特性,也就是少了一些商业代码所提供的功能怎么办呢?采取的办法则是找寻具有相同功能的开源代码做了替代,于是就成就了OpenJDK。

后来oracle不是收购了sun嘛,这个OpenJDK自然也就属于oracle的了,于是oracle在OpenJDK的基础之上,又增加了一些额外的功能特性,于是就成就了oracle JDK,也就是我们今天普遍说的JDK,实际上oracle JDK和OpenJDK没啥重大的技术差别,只不过oracle JDK针对性的增加了一些功能,但是OpenJDK是包含sun公司之前创造的JDK的全部核心功能的,而且由于oracle的这一操作,oracle JDK就成了商业版本,在生产环境使用,最好是要规避一些风险的,而OpenJDK则是免费试用,源码开放!

那说到这里,你知道oracle JDK(简称JDK)和OpenJDK之间的差别了吗?

OpenJDK只包含JDK中最核心的功能,JDK中的一些非核心功能OpenJDK是不包含的,比如oracle自行添加的一些商用功能以及额外特性。

可以说,OpenJDK是JDK的极简版本,另外还有一个重要知识点:

我们一般说的JDK指的就是oracle的JDK,每次JDK的新版本发布,都是把OpenJDK中的更新拿过来加上自己的私有部分,也就形成了最终的新版本JDK。

JDK的不同厂商

通过上述描述,我们知道OpenJDK就是包含大部分原有JDK的核心,而现在说的JDK指的是oracle在OpenJDK之上加上私有特性形成的oracle JDK,因为现在OpenJDK是被oracle主导的,那么oracle JDK也就享有特权直接叫JDK。

可是不管怎么说,OpenJDK是开源的,不仅你oracle可以拿过来加上私有特性形成你的oracle JDK,其他厂商也可以这么做,比如有如下这些:

  1. AdoptOpenJDK:算是半官方,这个是由OpenJDK社群维护的

  2. Amazon(亚马逊) Corretto JDK

  3. 阿里 Dragonwell JDK

  4. 腾讯 Kona JDK

  5. 华为毕昇 JDK

等等……其本质就是拿OpenJDK加上私有特性构建而成!

但是,你一定要记住的一个就是,Oracle Java现在是商用的,它搞出来的要收费的,要钱的!

Adoptium

那Adoptium又是啥?通过上面的介绍,我们知道了JDK是有不同的厂商的,都是在OpenJDK的基础上构建而来,这其中有一个比较特殊,就是AdoptOpenJDK,因为它算是半个官方,为啥?

因为AdoptOpenJDK是直接由OpenJDK社群维护的,也就是说,你们都根据我OpenJDK去进行新特性增加改造搞新的出来,我自己不也可以搞,岂不是更加方便,于是就有了AdoptOpenJDK!

而这个AdoptOpenJDK在2020年的时候就以Adoptium这个名字转移到了Eclipse Foundation项目中去,你就可以理解成Adoptium以前叫做AdoptOpenJDK!

现在的Adoptium是一个工作组,主要成员包括阿里云、华为、IBM、iJUG、 Karakun AG、微软、New Relic和Red Hat于 2021 年 3 月发起。

Adoptium Marketplace

这次的Adoptium Marketplace就是由eclipse基金会牵头联合Adoptium工作组发起的一个项目,目的就是大家伙团结起来,一起贡献力量,去构建更好的OpenJDK!

正如Eclipse 基金会执行董事 Mike Milinkovich 所说“在 Java 生态系统中,第一次有一群供应商团结在一起,不仅是一个兼容性标准,而且是一个质量标准,这是一个重要的里程碑,对于行业来说,这是一个机会,可以在高质量的 OpenJDK 运行时的样子方面立足。

此前,给个厂商在OpenJDK基础之上构建属于自己的独特的JDK,都有他们自己的一个名称,比如OpenJDK官方的叫做AdoptOpenJDK,阿里的叫做Dragonwell JDK,华为就是毕昇 JDK,而这次大家共同成立的这个Adoptium Marketplace发行的JDK也有自己的名称,叫做“Eclipse Temurin”简称就是“Temurin”了!

我们从Adoptium Marketplace的官方网站也可以看到:

fc2648b36550dd5d8a5e6f0a67b4c363.png

Oracle拒绝加入

那对于这样的一个项目,大家最容易想到的就是Oracle了,毕竟人家算得上是正主,所以此项目一定会邀请Oracle的加入,但是结果呢?

Oracle选择拒绝加入,你们知道为啥吗?评论区可以聊一聊!

参考链接:

1.https://www.infoworld.com/article/3662048/eclipse-opens-java-binaries-marketplace.html

2.https://adtmag.com/articles/2022/05/26/eclipse-adoptium-marketplace-launches.aspx

3.https://adoptium.net/marketplace/

我的新书《深入理解Java核心技术》已经上市了,上市后一直蝉联京东畅销榜中,目前正在6折优惠中,想要入手的朋友千万不要错过哦~长按二维码即可购买~

8515b2075bc49acce86b1b32a747126b.png

长按扫码享受6折优惠

往期推荐

81140fe462a31fce6b99d6fccea8578f.png

IDEA 官宣全新默认 UI,太震撼了!!


34d01672056a390c26e5a903577411d5.png

几行代码,搞定 SpringBoot 接口恶意刷新和暴力请求!


e0786a48be12318633c021ca36d1a2e5.png

消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ


有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

49b6bc3b3bf8af60c3d8fd6ea3ffe815.png

好文章,我在看️

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hollis_chuang/article/details/125093044

智能推荐

深度学习RNN-程序员宅基地

文章浏览阅读771次,点赞22次,收藏11次。只记得我在一个昏暗潮湿的地方喵喵地哭泣着。——夏目漱石《我是猫》到目前为止,我们看到的神经网络都是前馈型神经网络。(feedforward)是指网络的传播方向是单向的。具体地说,先将输入信号传给下一层(隐藏层),接收到信号的层也同样传给下一层,然后再传给下一层……像这样,信号仅在一个方向上传播。虽然前馈网络结构简单、易于理解,而且可以应用于许多任务中。不过,这种网络存在一个大问题,就是不能很好地处理时间序列数据(以下简称为“时序数据”)。

Rsync数据复制——本地数据传输_rsync本地拷贝-程序员宅基地

文章浏览阅读2.5k次。1本地数据传输类似cp的复制,实现文件,目录的增量复制。#语法模式rsync命令 参数 src源文件/目录 dest目标文件/目录1.本地文件复制# 复制hosts文件[root@chaogelinux ~]# rsync /etc/hosts /tmp/2.复制目录内容-r, --recursive 对子目录以递归模式处理# 复制/data下所有内容到/tmp[root@lb01 ~]# rsync -r /data/ /tmp/# 复制/data整个文件夹到/tmp_rsync本地拷贝

随机密码约瑟夫环_py约瑟夫环问题n,k,m要求由键盘输入值,每个人持有的密码随机生成。 2、每个函数完-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏11次。约瑟夫环问题: 问题描述:设有编号为1,2,3……n的n个人顺时针方向围坐一圈,每人有一密码(正整数)。开始时给出一初始密码m,从编号为1的人开始报数,报m的人出列;以后将出列者的密码作为新的m,从顺时针方向紧挨着他的下一个人开始报数……直至所有人出列。试编算法,求出出列顺序。要求:用不带头结点的单向循环链表实现从键盘输入n,m各人的密码由计算机随机产生(1~10的正整数,也可以自定义_py约瑟夫环问题n,k,m要求由键盘输入值,每个人持有的密码随机生成。 2、每个函数完

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)--强化学习、模仿学习、机器人_frenetix rl-程序员宅基地

文章浏览阅读1.7k次,点赞21次,收藏17次。这项研究介绍了一种自主运动规划的新方法,在Frenet坐标系内用强化学习(RL)代理通知分析算法。这种结合直接解决了自动驾驶中适应性和安全性的挑战。运动规划算法对于导航动态和复杂的场景至关重要。然而,传统方法缺乏不可预测环境所需的灵活性,而机器学习技术,特别是强化学习(RL),提供了适应性,但存在不稳定性和缺乏可解释性。我们独特的解决方案将传统运动规划算法的可预测性和稳定性与RL的动态适应性相结合,使系统能够有效地管理复杂的情况并适应不断变化的环境条件。_frenetix rl

springboot+shardingsphere实现读写分离和分库分表_spring.shardingsphere.sharding.master-slave-rules-程序员宅基地

文章浏览阅读335次。springboot整合shardingshere+druid 读写分离和分库分表,mybatis-plus_spring.shardingsphere.sharding.master-slave-rules

OSPF特殊区域NSSA配置实验(思科)_ospf naas区域实验-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏4次。OSPF特殊区域NSSA配置实验一、实验目的二、实验内容三、实验流程四、查看和验证**OSPF特殊区域NSSA和Total NSSA配置实验总结:**一、实验目的1.掌握OSPF协议的工作原理及其LSA的类型划分;2.掌握OSPF特殊区域的概念、分类和特点;3.掌握路由器中OSPF特殊区域NSSA区域的基本配置方法和结果验证;二、实验内容完成思科路由器OSPF特殊区域NSSA区域的基本配置和结果验证;三、实验流程(一)配置任务说明如下图所示:区域0是骨干域,将区域1设置为nssa区域,完成_ospf naas区域实验

随便推点

常见的Web应用的漏洞总结(原理、危害、防御)_web 应用中常见的漏洞及其危害有哪些-程序员宅基地

文章浏览阅读2.5k次。一、 SQL注入1.原理:SQL注入就是把SQL命令插入到Web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令。它是利用现在已有的应用程序,将SQL语句插入到数据库中执行,执行一些并非按照设计者意图的SQL语句。2.原因:根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入..._web 应用中常见的漏洞及其危害有哪些

离散数学——命题逻辑_离散数学命题逻辑-程序员宅基地

离散数学中的命题逻辑,包括命题的表示和联结词的运用,推理理论和常用的证明方法,如真值表法和直接证明法。还介绍了附加前提证明法或CP规则。

Spring Expression Language(SpEL)-程序员宅基地

文章浏览阅读8.6k次。Spring Expression Language(SpEL)spring的一种表达式。用来动态的获取,值、对象等。 样式: #{ …} 使用既定的规则放置在花括号中。式中的规则得以运行,可以反馈结果。理论上可以返回任何类型。 说说两种方式去设置SpELAnnotation注解。@Value()方便快捷。 你可以在里面方式任何符合SpEL规范的语句,并把它的返回值注..._spring expression language

ansible最大并发_通过这7种方法来最大程度地提高Ansible技能-程序员宅基地

文章浏览阅读1.7k次。ansible最大并发 Ansible是一种功能强大的无代理(但易于使用且轻巧)的自动化工具,自2012年推出以来一直稳步流行。这种流行在一定程度上是由于其简单性。 默认情况下,Ansible的最基本依赖项(Python和SSH)几乎在所有地方都可用,这使得Ansible可以轻松用于各种系统:服务器,工作站,Raspberry Pi,工业控制器,Linux容器,网络设备等。 Ansible可..._ansible 提升 高并发

Barcode Reader在45毫秒内实现条码识别-程序员宅基地

文章浏览阅读479次。应我的客户要求,需要找到一款可以在极短时间识别二维条码的软件以应对他们现在极其迅速的货品入库需求。正好听说过一款Dynamsoft Barcode Reader的开发包,根据其官网介绍最新版对条码检测速度比以前的版本快2倍以上。根据对Dynamsoft Barcode Reader8.8SDK包拆解,其中含了JavaScript Package /.NET Package /C/C++ Package /Python Package /Java Package /iOS Package /A..._barcode reader

mediasoup-demo在 Windows上的正确编译安装注意事项_npm安装那个版本最好-程序员宅基地

文章浏览阅读1.2k次。前人栽树,后人乘凉,文章参考https://blog.csdn.net/TsingSee/article/details/108618054,我要感谢此博客主,mediasoup-demo很多文章都是关于在linux系统下的,很多在windows都有问题,而唯独此博客主的文章正确。我学习此博客的文章对比才知道主要问题在于三点:1.node,npm版本最好是要高版本的。2.python版本问题,这个是最关键的,一定不能是python3版本,我这里用的是TSING博客主建议的python-v2.7.17_npm安装那个版本最好

推荐文章

热门文章

相关标签