1. openJdk 和 sun jdk 的区别
使用过 LINUX 的人都应该知道,在大多数 LINUX 发行版本里,内置或者通过软件源安装 JDK
的话,都是安装的 OpenJDK,
那么到底什么是 OpenJDK,它与 SUN JDK 有什么关系和区别呢?
历史上的原因是,OpenJDK 是 JDK 的开放原始码版本,以 GPL(General Public License)协议的
形式放出(题主提到的 open 就是指的开源)。
在 JDK7 的时候,OpenJDK 已经作为 JDK7 的主干开发,SUN JDK7 是在 OpenJDK7 的基础上发
布的,其大部分原始码都相同,只有少部分原始码被替换掉。
1.授权协议的不同:
OpenJDK 采用 GPL V2 协议放出,而 SUN JDK 则采用 JRL 放出。两者协议虽然都是开放源代码
的,但是在使用上的不同在于 GPL V2 允许在商业上使用,而 JRL 只允许个人研究使用。
2.OpenJDK 源代码不完整:
这个很容易想到,在采用 GPL 协议的 OpenJDK 中,SUN JDK 的一部分源代码因为产权的问题
无法开放给 OpenJDK 使用,其中最主要的部份就是 JMX 中的可选元件 SNMP 部份的代码。
OpenJDK 不包含 Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web
Start、以及 Java 控制面板,这些功能在 OpenJDK 中是找不到的。
3.部分源代码用开源代码替换:
由于产权的问题,很多产权不是 SUN 的源代码被替换成一些功能相同的开源代码,比如说
字体栅格化引擎,使用 Free Type 代替。
4.OpenIDK 只包含最精简的 JDK:
OpenJDK 不包含其他的软件包,比如 Rhino Java DB JAXP……,并且可以分离的软件包也都是
尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。