OpenJDK与Oracle JDK的区别

1. 问题背景

在使用Linux的环境下,现在默认安装的是 OpenJDK 的环境,例如 openjdk-8-jre , 而我们一般接触 OracleJDK 较多,那么它们之前是什么关系呢。

2. OpenJDK 与 OracleJDK 的联系

历史上的原因是,OpenJDK 是 JDK 的开源版本。

在 JDK7 的时候,OpenJDK 已经作为 JDK7 的主干开发,SUN JDK7是在 OpenJDK7 的基础上发布的,其大部分原码都相同,只有少部分原码被替换掉。(SUN 已经被 Oracle 收购)

3. OpenJDK 与 OracleJDK 的区别

3.1 授权协议的不同

OpenJDK 采用 GPL V2 协议放出,而 SUN JDK 则采用 JRL 放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而 JRL 只允许个人研究使用。

OpenJDK 不包含 Deployment 功能:包括 Browser Plugin、Java Web Start、以及 Java 控制面板,这些功能在OpenJDK中是找不到的。

3.2 OpenJDK源代码不完整

在采用 GPL 协议的 OpenJDK 中,SUN JDK 的一部分源代码因为产权的问题无法开放给 OpenJDK 使用,其中最主要的部份就是 JMX 中的可选元件 SNMP 部份的代码。

由于产权的问题,源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用 freetype 代替。

3.3 OpenIDK只包含最精简的JDK

OpenJDK 不包含其他的软件包,仅集合了精简的 jar 包, 但是如果需要,也可以下载使用

3.4 OpenIDK不能使用Java商标

由于 Java 被 Oracle 收购的问题,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK。

4. 更多

Google Android以后要放弃sunJDK 而采用开源的openJDK


相关主题: