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(应用程序接口)没有区别,因此两个平台间可以无缝迁移。使用到有差别类库的情况很少,并不能一概而论,需要在应用过程中分情况区别对待。
分享到:
相关推荐
OpenJDK 和 Oracle JDK 的区别 ...Icedtea 则为这些不完整的部分开发了相同功能的源代码,促使 OpenJDK 更加完整。 对于普通开发,使用 OpenJDK 和 Oracle JDK 并没有太大差别,两者的差别更体现在商业考量上面。
openjdk不包含JMX中的可选元件SNMP部分的代码,而Icedtea则为这些不完整的部分开发了相同功能的源代码。 openjdk可以在商业上使用,而jdk只允许个人研究使用。 总的来说,openjdk是jdk的开源版本,两者在功能上略有...
OpenJDK 和 IcedTea 的关系,IcedTea 项目最初是由于 OpenJDK 不完整(因产权而造成的障碍)而创立的,社区需要一个完整的开源工具链及代码库。IcedTea 长期以来一直是 OpenJDK 的一套补丁,正如刚才我所说的,它有...
OpenJDK和OracleJDK是两个广泛使用的Java Development Kits...尽管OpenJDK在某些方面可能不完整,但通过开源社区的努力,如IcedTea项目,这些缺失的部分得到了弥补,使得OpenJDK成为一个功能完备且强大的开源Java平台。
在Linux系统中,OpenJDK是默认的Java开发工具包,但有时用户可能需要安装Sun JDK,因为某些应用可能依赖于特定版本的Oracle JDK。在本教程中,我们将讲解如何卸载Linux上的OpenJDK并安装Sun JDK。 首先,我们需要...
值得注意的是,尽管OpenJDK和SUN JDK在功能上有一定的差异,但在大多数情况下,OpenJDK足以满足日常开发需求。此外,由于OpenJDK是开源的,因此它更受开发者欢迎。不过,在某些特定的企业环境中,根据项目的具体需求...
"OpenJDK-7-JDK"标签进一步确认了这个压缩包与Java 7的开发工具包(JDK)相关。JDK包含了Java运行时环境(JRE)以及开发Java应用程序所需的工具,如编译器(javac)、调试器(jdb)和文档生成器(javadoc)等。 ...
安装包: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)
java version "1.7.0_121" 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)
OpenJDK Runtime Environment (IcedTea7 2XX.bXXX) (7uXXX-xxx-ubuntuXX) OpenJDK 64-Bit Server VM (build 24.0-xxx-bxxx, mixed mode) ``` 至此,你已经成功地在 Ubuntu 14.04 及更高版本中安装了 OpenJDK 1.7。这...
JDK从7开始,诞生了自由使用的公共版本OpenJDK,而因产权问题OpenJDK功能不完整,而Icedtea则为这些不完整而创立的,长期以来一直是OpenJDK的一套补丁,IcedTea提供一大块内容是plugin/java-web-start基础架构
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u80-2.5.6-0) OpenJDK 64-Bit Server VM (build 24.80-b11, mixed mode) ``` 通过以上步骤,我们可以顺利地在CentOS 7 64位系统上安装JDK 1.7 64位,并验证其正确性...
但是,由于版权和许可问题,直接下载可能受到限制,所以我们通常会采用一种叫做IcedTea的开源项目,它是对Oracle JDK的一个替代,可以构建OpenJDK版本。 然而,如果你确实需要Oracle JDK,你可以通过以下Shell脚本...
通过执行命令“sudo apt-get remove openjdk* icedtea*”来删除系统中所有OpenJDK包。 - 添加Oracle JDK的PPA源(个人包存档),执行命令“sudo add-apt-repository ppa:webupd8team/java”,更新源并使用命令...
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 ...
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b16-1.11.4-1ubuntu1) OpenJDK Server VM (build 19.1-b02, mixed mode) ``` #### 三、安装 Tomcat 1. **下载 Tomcat 安装包**:可以从 Apache 官方网站下载 ...