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 之间的关系相关推荐

  1. Java 入门之1:浅谈Java的最基本概念及JDK、JRE、JVM之间的关系和区别

    目录 前言: 一句话介绍Java语言的故事 一句话概括Java的特性和优势 两句话阐述JAVA_HOME环境变量和classpath环境变量的作用是什么 简述JDK.JRE.JVM之间的关系 Java ...

  2. JDK、JRE和JVM之间的关系

    作为一个Java开发者,只会用Java,却不知什么是JDK.JRE和JVM是什么,以及他们之间有什么联系.本文总结了JDK,JRE,JVM三者的关系与区别. JDK.JRE和JVM之间的关系 一.JD ...

  3. 【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跨平台原 ...

  4. JDK,JRE和JVM之间的区别

    Table of Contents JAVA开发套件 JAVA运行时环境 JAVA虚拟机 JDK,JRE和JVM之间的差异 JRE和JDK如何工作? JRE如何工作? JVM如何工作? 推荐文章: J ...

  5. Java笔记-01(Java语言的特性、JDK、JRE、JVM三者之间的关系和Java重点术语)

    1.Java语言的特性 1.1.简单性在Java语言当中真正操作内存的是:JVM(Java虚拟机)所有的java程序都是运行在Java虚拟机当中的.而Java虚拟机执行过程中再去操作内存.对于C或者C ...

  6. 一次性掌握JDK、JRE、JVM的概念以及三者之间的关系【2021整理】

    一.JDK.JRE.JVM概念解析 JDK(Java Development Kit):Java开发工具包,开发人员用来构建Java应用程序的软件包. JRE(Java Runtime Environ ...

  7. JVM,JER,JDK各自的作用和之间的联系

    一.JVM (1)概念 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能 ...

  8. JDK,JRE以及JVM三者之间的关系

    JDK,JRE以及JVM三者之间的关系 JDK(Java Development Kit) Java开发工具包 JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envir ...

  9. 教妹学Java(六):JDK,JRE和JVM之间有什么区别?

    大家好,我是沉默王二.本篇文章通过我和三妹的对话来谈一谈"JDK,JRE 和 JVM 之间的区别".本文付费,为表谢意,附送上个人微信(qing_gee),坑位所剩无几,快加,你有 ...

  10. jdk jre jvm三者之间的关系

    定义 JDK(Java SE Development Kit),Java标准开发包,它提供了编译.运行Java程序所需的各种工具和资源,包括Java编译器.Java运行时环境,以及常用的Java类库等 ...

最新文章

  1. ORB_SLAM2局部建图线程
  2. selector与layer-list 单边框效果
  3. 2018最后一战:25天编程PK赛!
  4. WINDOWS系统文件讲解
  5. linux 不同ip 相同mac arp,linux – nmap和arp-scan不一致的IP-MAC结果
  6. Codeforces Round #419 (Div. 2)
  7. RTX5 | 消息队列01 - 创建消息队列
  8. centos基础命令 第二节
  9. 我的世界暮色森林java下载_我的世界暮色森林mod1.7.2下载-暮色森林整合包下载...
  10. Thinking in Java 14.3.3递归计数
  11. is-is中通告默认路由
  12. 清理SharePoint 2010的SQL Server 2008 R2日志数据库的方法
  13. 目前计算机硬件安全,计算机硬件与网络安全
  14. WPS宏不可用解决方法
  15. 心理学第二周学习笔记:心理学的历史和流派
  16. Bada学习-bada测试服务器
  17. java基于springboot小说下载网站管理系统源码
  18. MATLAB强化学习入门——四、用DQN实现网格迷宫算例
  19. pannel加载form
  20. 基于CAD等高线的流域边界绘制

热门文章

  1. 网站SEO优化数据分析之跳出率+停留时间
  2. spark core源码分析16 Shuffle详解-读流程
  3. 一分钟了解业务流程图与功能流程图的区别
  4. 终于知道为啥网页不让我复制粘贴了!
  5. 脱机外挂制作完全版(制作原理与实现技术)
  6. PS入门(1-7) HSB色彩模式
  7. 8小时学会div+css 视频教程
  8. div+css视频教程大全免费下载更有html5教程
  9. 银行数据仓库体系实践(15)--数据应用之巴塞尔新资本协议
  10. 搭建本地私有pip源