openjdk与Oraclejdk的区别

openjdk与Oraclejdk的区别
在2006年11⽉13⽇的JavaOne⼤会上,Sun公司(当时还没被收购)宣布计划要把Java开源,在随后的⼀年多时间内,它陆续地将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建⽴了OpenJDK组织对这些源码进⾏独⽴管理。除了极少量的产权代码(Encumbered Code,这部分代码所有权不属于Sun公司,Sun本⾝也⽆权进⾏开源处理)外,OpenJDK⼏乎拥有了当时SunJDK 的全部代码。
OpenJDK的质量主管曾经表⽰在JDK 7中,SunJDK和OpenJDK除了代码⽂件头的版权注释之外,代码⼏乎是完全⼀样的,所以OpenJDK 7与SunJDK 7本质上就是同⼀套代码库出来的产品。
总结下来,OpenJDK和OracleJDK存在以下⽅⾯的区别:
授权协议不同
OpenJDK 采⽤GPL V2协议放出,⽽OracleJDK则采⽤JRL放出。两者协议虽然都是开放源代码的,但是在使⽤上的不同在于GPL V2允许在商业上使⽤,⽽JRL只允许个⼈研究使⽤。
OpenJDK不包含OracleJDK中的部分产权代码
由于OracleJDK中的部分代码的产权也不是归Oracle所有的,所以这部分代码就没开源到OpenJDK中。但是很多“好⼼”的开源爱好者在OpenJDK中实现了相同的功能,并将源代码开源到OpenJDK中。⽐如说字体栅格化引擎,使⽤Free Type代替。
不能使⽤Java商标
在Sun被Oracle收购以后,Java这个商标就归Oracle所有了。不仅OpenJDK不能使⽤java商标,J2EE这个曾经Sun的亲⼉⼦命运也同样坎坷,已经被Oracle⽆情抛弃,同样
不能在使⽤Java商标。
但是随着JDK版本的不断发布,Oracle失去了维护OpenJDK的耐⼼,因为不赚钱啊。RedHat从Oracle⼿上接过OpenJDK的管理权利和维护职责。
2019年3⽉20⽇,JDK 12发布,只包含8个JEP,其中主要有Switch表达式、Java微测试套件(JMH)等新功能,最引⼈注⽬的特性⽆疑是加⼊了由RedHat领导开发的Shen-andoah垃圾收集器。Shenandoah作为⾸个由⾮Oracle开发的垃圾收集器,其⽬标⼜与Oracle在JDK 11中发布的ZGC⼏乎完全⼀致,两者天⽣就存在竞争。Oracle马上⽤实际⾏动抵制了这个新收集器,在JDK 11发布时才说应尽可能保证OracleJDK和OpenJDK的兼容⼀致,转眼就在OracleJDK 12⾥把Shenandoah的代码通
过条件编译强⾏剔除掉,使其成为历史上唯⼀进⼊了OpenJDK发布清单,但在OracleJDK中⽆法使⽤的功能。
所以对于⾼版本的OpenJDK和OracleJDK之间,也存在OpenJDK中有的功能,但是OracleJDK中不包含的。
总的来说,对于普通开发,使⽤OpenJDK和OracleJDK并没有太⼤差别,两者的差别更体现在商业考量上⾯。
openjdk源代码不完整
这个很容易想到,在采⽤GPL协议的OpenJDK中,SUN JDK的⼀部分源代码因为产权的问题⽆法开放给OpenJDK使⽤,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使⽤,你也可以选择不要使⽤plug。⽽Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK 更加完整。
总结
其他区别欢迎各位指出
以上就是openjdk与Oraclejdk的区别的详细内容,更多关于openjdk与Oraclejdk的资料请关注其它相关⽂章!
>oah

本文发布于:2024-09-20 20:26:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/377267.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:代码   部分   源代码   产权   协议   功能   收集器   开源
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议