Sun jdk、Open jdk、Icedtea jdk 之间的关系
1、Openjdk的前身是Sun公司的JDK虚拟机,最初Java标准是由Sun公司制定的,他们也开发出了严格遵循Java标准的Java虚拟机JDK,在当时JDK源代码不是开放的,只是由Sun公司内部的开发者进行维护。当时比较流行的版本是JDK6和JDK7,他们在代码结构和风格上有较大的不同。随着开源成为软件发展的一个必然趋势,在广大开发者和爱好者的呼吁下, 2007年5月9日, Sun公司在GPL V2协议下,开放了JDK7的大部分代码,成立了Openjdk项目,该项目由Openjdk社区来维护,Openjdk社区从理论上来说是独立于Sun公司的。这样就形成了Openjdk的第一个版本——Openjdk7;
2、Sun公司在成立Openjdk项目之后,原来的JDK6版本还继续维护,这样Openjdk7和JDK6并行发展。Openjdk7由JDK7代码开源而来,继承了JDK7的代码结构和风格,由Openjdk社区维护;JDK6由Sun公司内部维护。Sun公司JDK6的很多技术来自Openjdk社区,由于社区的Openjdk7与JDK6代码结构有差异,因此技术的迁移产生了很多障碍; JDK6属于非常流行的Java虚拟机版本,在重重因素的驱使下,Openjdk社区在Openjdk7发展到第22个发行版的时候,从该发行版建立了另外一个分支,也就是我们现在普遍使用的Openjdk6;
3、Openjdk6使用了与Sun JDK6统一的代码结构,并兼容Java SE 6标准,因此Sun公司的内部维护与社区的技术也就实现了很方便的融合。这样,随着时间的推移,Openjdk6、Openjdk7和JDK6三个版本各自独立地发展着,也各自逐步完善起来,Openjdk6与Openjdk7开源,由Openjdk社区开发者维护,JDK6由Sun公司内部维护。其中Openjdk6继承了Openjdk7强大的功能、较高的效率以及JDK6优秀的代码风格,渐渐成为开源Java虚拟机的主流版本;
4、Sun jdk中包含有部分第三方代码,这部分代码并没有开放,Sun只是以二进制插件的形式对开发者提供,因此Openjdk还有一部分代码是闭源的,这些代码以二进制插件的形式存在。这样,在Openjdk的基础上,逐渐成立了另外一个项目——IcedTea,IcedTea项目开放了全部的二进制插件,是全部开源的Java虚拟机版本。
最后讲一下兼容性:
Openjdk6是sun jdk的开源版本,符合Java SE 6标准,因此与sun jdk6完全兼容。在内部实现上的类库有微小差别,用户使用上的API(应用程序接口)没有区别,因此两个平台间可以无缝迁移。使用到有差别类库的情况很少,并不能一概而论,需要在应用过程中分情况区别对待。
Sun jdk与Openjdk版本发展历史如下图所示:
Thank Sense from ChinaUnix.
From blog: http://59949.htmlfyxspgpw.blog.chinaunix.net/uid-20648944-id-3204527.html
Sun jdk、Open jdk、Icedtea jdk 之间的关系相关推荐
- Java 入门之1:浅谈Java的最基本概念及JDK、JRE、JVM之间的关系和区别
目录 前言: 一句话介绍Java语言的故事 一句话概括Java的特性和优势 两句话阐述JAVA_HOME环境变量和classpath环境变量的作用是什么 简述JDK.JRE.JVM之间的关系 Java ...
- JDK、JRE和JVM之间的关系
作为一个Java开发者,只会用Java,却不知什么是JDK.JRE和JVM是什么,以及他们之间有什么联系.本文总结了JDK,JRE,JVM三者的关系与区别. JDK.JRE和JVM之间的关系 一.JD ...
- 【JAVA】Java概述(1、Java语言发展史;2、Java语言跨平台原理;3、JRE和JDK;4、JDK的下载与安装)
Java概述 重新学习Java第一篇 文章目录 Java概述 1.JAVA语言发展史 1.1Java语言 1.2Java语言发展史 2.Java语言跨平台原理 2.1平台 2.2跨平台 2.3跨平台原 ...
- JDK,JRE和JVM之间的区别
Table of Contents JAVA开发套件 JAVA运行时环境 JAVA虚拟机 JDK,JRE和JVM之间的差异 JRE和JDK如何工作? JRE如何工作? JVM如何工作? 推荐文章: J ...
- Java笔记-01(Java语言的特性、JDK、JRE、JVM三者之间的关系和Java重点术语)
1.Java语言的特性 1.1.简单性在Java语言当中真正操作内存的是:JVM(Java虚拟机)所有的java程序都是运行在Java虚拟机当中的.而Java虚拟机执行过程中再去操作内存.对于C或者C ...
- 一次性掌握JDK、JRE、JVM的概念以及三者之间的关系【2021整理】
一.JDK.JRE.JVM概念解析 JDK(Java Development Kit):Java开发工具包,开发人员用来构建Java应用程序的软件包. JRE(Java Runtime Environ ...
- JVM,JER,JDK各自的作用和之间的联系
一.JVM (1)概念 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能 ...
- JDK,JRE以及JVM三者之间的关系
JDK,JRE以及JVM三者之间的关系 JDK(Java Development Kit) Java开发工具包 JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envir ...
- 教妹学Java(六):JDK,JRE和JVM之间有什么区别?
大家好,我是沉默王二.本篇文章通过我和三妹的对话来谈一谈"JDK,JRE 和 JVM 之间的区别".本文付费,为表谢意,附送上个人微信(qing_gee),坑位所剩无几,快加,你有 ...
- jdk jre jvm三者之间的关系
定义 JDK(Java SE Development Kit),Java标准开发包,它提供了编译.运行Java程序所需的各种工具和资源,包括Java编译器.Java运行时环境,以及常用的Java类库等 ...
最新文章
- ORB_SLAM2局部建图线程
- selector与layer-list 单边框效果
- 2018最后一战:25天编程PK赛!
- WINDOWS系统文件讲解
- linux 不同ip 相同mac arp,linux – nmap和arp-scan不一致的IP-MAC结果
- Codeforces Round #419 (Div. 2)
- RTX5 | 消息队列01 - 创建消息队列
- centos基础命令 第二节
- 我的世界暮色森林java下载_我的世界暮色森林mod1.7.2下载-暮色森林整合包下载...
- Thinking in Java 14.3.3递归计数
- is-is中通告默认路由
- 清理SharePoint 2010的SQL Server 2008 R2日志数据库的方法
- 目前计算机硬件安全,计算机硬件与网络安全
- WPS宏不可用解决方法
- 心理学第二周学习笔记:心理学的历史和流派
- Bada学习-bada测试服务器
- java基于springboot小说下载网站管理系统源码
- MATLAB强化学习入门——四、用DQN实现网格迷宫算例
- pannel加载form
- 基于CAD等高线的流域边界绘制