OpenJDK和JDK区别
简介(ps):
简单来说jdk从7开始,弄出一个可以自由使用的公共版本(openjdk)。
原来继续分为个人版(研究使用)和企业(商用)是有版权的。 关于开源:
原始的jdk并没有完全开源。
openjdk,应该是完全开源的,对于公用原始版的部分不能开源的应该也有自己的开源实现。
在大多数LINUX发行版本里,内置或者通过软件源安装的JDK,都是安装的OpenJDK,
一,那么到底什么是OpenJDK
历史上的原因是,OpenJDK是JDK的开放源码版本,以GPL协议的形式发布。(General Public License) 在JDK7的时候,OpenJDK已经成为JDK7的主干开发版,SUN JDK7是在OpenJDK7的基础上发布的,其大部分源码都相同,只有少部分源码被替换掉。
使用JRL(Java Research License,Java研究授权协议)发布。
至于OpenJDK6则更是有其复杂的一面,首先是OpenJDK6是JDK7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。
二,关于JDK和OpenJDK的区别,可以归纳为以下几点:
授权协议的不同:
OpenJDK采用GPL V2协议发布,而JDK则采用JRL协议发布。
两个协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK只包含最精简的JDK:
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
OpenJDK源代码不完整:
这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放OpenJDK使用,其中最主要的部分就是JMX中的可选元件SNMP部分的代码。
因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。
而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。
OpenJDK和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的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
不能使用Java商标:
这个很容易理解,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK,但是如果是使用Icedtea补丁的OpenJDK,显示的是java。(未验证)
OpenJDK和JDK区别的更多相关文章
- OpenJDK和JDK区别(转)
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...
- OpenJDK与JDK的区别及Ubuntu下的安装方法
OpenJDK与JDK的区别: OpenJDK是JDK的开放原始码版本,以GPL协议的形式放出.两者的授权协议的不同,且在采用GPL协议的OpenJDK中,SUNJDK的一部分源代码因为产权的问题无法 ...
- [转] openjdk和jdk的区别与联系
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...
- OpenJDK和JDK的区别
作者:Aloys寒风链接:https://www.zhihu.com/question/19646618/answer/40621705来源:知乎著作权归作者所有,转载请联系作者获得授权. 使用过LI ...
- openJdk和sun Jdk区别和安装
openJdk和sun jdk的区别 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SU ...
- OpenJDK与JDK的区别分析
一.以下是具体分析: 以下内容转自http://fgh2011.iteye.com/blog/1771649: 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JD ...
- POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等 ...
- 卸载OpenJDK安装JDK
卸载OpenJDK安装JDK rpm -qa | grep java rpm -qa | jdk java rpm -qa | grep java| xargs rpm -e --nodeps rpm ...
- OpenJDK,Oracle's OpenJDK,Oracle JDK的区别与选择
OpenJDK 单纯的OpenJDK指的是JDK的源码,以GPL协议开源,由企业和社区开发者共同维护和开发. Oracle's OpenJDK Oracle started providing ope ...
随机推荐
- Node_初步了解(4)小爬虫
var http=require('http'); var cheerio=require('cheerio'); var url='http://www.cnblogs.com/Lwd-linux/ ...
- 【贪心】经营与开发 @upc_exam_5500
目录 经营与开发 @upc_exam_5500 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE 经营与开发 @upc_exam_5500 PROBLEM 题 ...
- Mac下安装pyenv
mac 用virtualenv安装py3.6的虚拟环境报错(virtualenv -p /usr/bin/python3 env36), 解决的话需要安装zlib包, 然后去掉configure配置里 ...
- 具有相同名称 的类/接口已在使用。请使用类定制设置来解决此冲突。java调用第三方的webservice应用实例
WSDLToJava Error: http://10.96.84.124:81/BTRPWebServiceForSMB/OnSMBOrderService.svc?xsd=xsd0 [0,0]: ...
- 深入理解C++内存管理机制
关于C++的内存处理,可分为三大块,分别是: (一)内存管理机制 (二)内存泄露处理 (三)内存回收机制 这篇文章将就(一)内存管理机制 进行深入探讨,如有错误欢迎大家指正. C++的内存管理也可细分 ...
- mac下安装xampp、及其之上的组件安装
由于mac下开发需要用到php7,这里是用的xampp集成开发版本.但是mac下安装xampp失败,失败信息如下: Error starting "XAMPP" stack: fa ...
- MySQL执行计划解析
前言 在实际数据库项目开发中,由于我们不知道实际查询时数据库里发生了什么,也不知道数据库是如何扫描表.如何使用索引的,因此,我们能感知到的就只有SQL语句的执行时间.尤其在数据规模比较大的场景下,如何 ...
- system generator学习笔记【02】
作者:桂. 时间:2018-05-20 23:28:04 链接:https://www.cnblogs.com/xingshansi/p/9059668.html 前言 继续学习sysgen.接触s ...
- Atitit s2018.5 s5 doc list on com pc.docx v2
Atitit s2018.5 s5 doc list on com pc.docx Acc 112237553.docx Acc Acc 112237553.docx Acc baidu ne ...
- js cookie跨域设置
/** * 设置cookie方法 * @param {string} c_name cookie键值 * @param {string} value cookie值 * @param {Boolean ...