`
cppmule
  • 浏览: 436569 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Sun jdk、Openjdk、Icedtea jdk关系

    博客分类:
  • java
 
阅读更多




 Sun jdk与Openjdk版本发展历史如下图所示:
 
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(应用程序接口)没有区别,因此两个平台间可以无缝迁移。使用到有差别类库的情况很少,并不能一概而论,需要在应用过程中分情况区别对待。

分享到:
评论

相关推荐

    openjdk11.0.16安装包

    openjdk不包含JMX中的可选元件SNMP部分的代码,而Icedtea则为这些不完整的部分开发了相同功能的源代码。 openjdk可以在商业上使用,而jdk只允许个人研究使用。 总的来说,openjdk是jdk的开源版本,两者在功能上略有...

    java-7-openjdk-amd64.tar.gz

    从前面介绍的Java发展史中我们了解到OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea、UltraViolet都是从OpenJDK源码衍生出的发行版。...

    java-7-openjdk-amd64

    安装包:java-7-openjdk-amd64.tar.gz 使用方法 1. 拷贝至服务器/个人电脑...OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-1ubuntu0.12.04.3) OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)

    Linux环境下安装jdk1.8

    OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-i386) OpenJDK Client VM (build 14.0-b16, mixed mode) # rpm -qa |grep gcj #查看服务器安装的jdk软件包信息 libgcj-4.4.4-13.el6.i686

    linux如何卸载自带的openJdk

    linux如何卸载自带的openJdk,并且安装jdk1.8 2017年12月20日 09:26:49 Cyl2018 阅读数:868 [dupenghui@mini01 ~]$ java -version java version "1.7.0_09-icedtea" OpenJDK Runtime Environment (rhel-2.3.4.1.el6...

    国产化操作系统-安装JDKicedtea-netx插件.zip

    JDK从7开始,诞生了自由使用的公共版本OpenJDK,而因产权问题OpenJDK功能不完整,而Icedtea则为这些不完整而创立的,长期以来一直是OpenJDK的一套补丁,IcedTea提供一大块内容是plugin/java-web-start基础架构

    Linux下安装JDK并配置环境变量

     OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.41.1.10.4.el6-x86_64)  OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)  2. 删除默认的安装的OpenJdk  [root@localhost bin]# rpm -qa ...

    pds3_grammar:NASA PDS 版本 3 标签的 ANTLR4 语法

    ANTLR4 PDSv3 语法这是NASA PDSv3 ODL v2.1标签的... 我正在使用 Ubuntu 14.04 附带的 JDK: java version "1.7.0_65"OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1)OpenJDK 64-Bit Serve

    anadroid:android的污点流分析

    下推 OO 污点流分析。 Ucombinator 维护了 fork。 原文来自 Shuying at 。 构建更改 现在使用 sbt 完成构建。... OpenJDK 运行时环境 (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)。 Oracle

    InvertedIndexBuilder:内存限制下的倒排索引生成器

    表现环境物品价值中央处理器酷睿 i7 3612QM 操作系统Ubuntu 14.04.01 LTS 64 位JDK/JRE OpenJDK 运行时环境(IcedTea6 1.13.5) JRE 参数-Xmx512m 测试配置物品价值语料库来自维基百科的 10,228 页不同的令牌计数1,...

Global site tag (gtag.js) - Google Analytics