linux卸载openjdk_OpenJDK和SunJDK的区别与联系

如果你要在一个Linux新机器上部署项目WEB系统,我们需要安装SunJDK。

那在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK。

这样我们在安装SunJDK之前,需要先卸载Linux系统内置的OpenJDK。那OpenJDK和SunJDK有什么区别?

一、联系

OpenJDK,即“开放的JDK”,是JDK的开放原始码版本。在2006年11月3日的JavaOne大会上(2006年12月11日,JDK 1.6发布),Sun公司宣布最终会将Java开源,并在随后的一年多时间里,陆续将JDK的各个部分在(General Public License 国际通用许可协议)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。

在JDK1.7的时候,OpenJDK已经作为JDK1.7的主干开发,SunJDK1.7是在OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉,并且使用JRL(Java Research License,Java研究授权协议)发布。即Openjdk7由JDK7代码开源而来,继承了JDK7的代码结构和风格,由Openjdk社区维护

二、区别

1、两者授权协议不同

OpenJDK→GPL V2协议

SunJDK→JRL协议

两协议都是开放源代码的,但GPL V2允许在商业上使用,而JRL只允许个人研究使用。

2、OpenJDK不包含部署功能

OpenJDK不包含Deployment(部署)功能,如不包含Browser Plugin、Java Web Start、以及Java控制面板(也不常用)

3、OpenJDK源代码不完整

SunJDK的一部分源代码因为产权的问题无法开放给OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。

4、OpenJDK只包含最精简的JDK

OpenJDK采用分离模式,不包含其他的软件包,比如Rhino Java DB JAXP等,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,若被需要你可以自己下载加入

5、SunJDK中部分源代码用开源代码替换

由于产权的问题,很多产权不是SunJDK的源代码被替换成一些功能相同的开源代码,如字体栅格化引擎,使用Free Type代替

6、crypto原代码开源与否

open jdk 对于 crypto 等包是开源的。

而Sun JDK,现在已经归为Oracle 所有,javax.caypto 包中的源代码内容是不可见的

Open JDK7源代码地址:9b8c96f96a0f /src/share/classes/javax/

7、OpenJDK不能使用java商标

如安装的是SunJDK,使用java -version查询版本时,结果如下

00cd237f8d600117b899f658022c0e0f.png
TM:trademark 商标

如安装的是OpenJDK,使用java -version查询版本时,结果如下

562fafef1a7687d16f353c00e542b09a.png
显示OpenJDK而非使用Java商标

若使用Icedtea补丁的OpenJDK,显示的是java


补充说明:Icedtea补丁

IcedTea项目最初是由于OpenJDK不完整(因产权而造成的障碍)而创立的,社区需要一个完整的开源工具链及代码库。

IcedTea长期以来一直是OpenJDK的一套补丁,它有一个 基于“./configure”的不同的构建系统。

在OpenJDK中,我们已经替换了产权代码(encumbered code),因此不再有障碍了。正因为我们的努力,IcedTea项目已经减少了使用补丁的数量。IcedTea中看上去不错的一点是,它的 configure脚本使得在多种不同的模式下构建OpenJDK变得很容易,比如使用Zero Assembler Port在非x86/sparc芯片上来支持编译等等。 IcedTea提供的一大块内容是plugin/java-web-start基础架构。

Sun jdk中包含有部分第三方代码,这部分代码并没有开放,Sun只是以二进制插件的形式对开发者提供,因此Openjdk还有一部分代码是闭源的,这些代码以二进制插件的形式存在。这样,在Openjdk的基础上,逐渐成立了另外一个项目——IcedTea,IcedTea项目开放了全部的二进制插件,是全部开源的Java虚拟机版本。

在生产环境中是可以使用OpenJDK,OpenJDK允许在商业上使用,当前一些知名互联网公司使用的就是OpenJDK,如阿里巴巴、推特、谷歌、亚马逊等

上一篇:

像最初:JDK各版本发布时间​zhuanlan.zhihu.com

下一篇:

像最初:初识JDK11、JDK12的新特性​zhuanlan.zhihu.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值