
openjdk 与 Oraclejdk 的区别
在 2006 年 11 月 13 日的 JavaOne 大会上,Sun 公司(当时还没被收购)宣布计划要
把 Java 开源,在随后的一年多时间内,它陆续地将 JDK 的各个部分在 GPL v2(GNU
General Public License v2)协议下公开了源码,并建立了 OpenJDK 组织对这些源码
进行独立管理。除了极少量的产权代码(Encumbered Code,这部分代码所有权不属
于 Sun 公司,Sun 本身也无权进行开源处理)外,OpenJDK 几乎拥有了当时 SunJDK
的全部代码。
OpenJDK 的质量主管曾经表示在 JDK 7 中,SunJDK 和 OpenJDK 除了代码文件头的
版权注释之外,代码几乎是完全一样的,所以 OpenJDK 7 与 SunJDK 7 本质上就是同
一套代码库出来的产品。
总结下来,OpenJDK 和 OracleJDK 存在以下方面的区别:
授权协议不同
OpenJDK 采用 GPL V2 协议放出,而 OracleJDK 则采用 JRL 放出。两者协议虽然都
是开放源代码的,但是在使用上的不同在于 GPL V2 允许在商业上使用,而 JRL 只允许
个人研究使用。
OpenJDK 不包含 OracleJDK 中的部分产权代码
由于 OracleJDK 中的部分代码的产权也不是归 Oracle 所有的,所以这部分代码就没开
源到 OpenJDK 中。但是很多“好心”的开源爱好者在 OpenJDK 中实现了相同的功能,
并将源代码开源到 OpenJDK 中。比如说字体栅格化引擎,使用 Free Type 代替。
不能使用 Java 商标