Openjdk是jdk的開源版本,以GPL協議的形式發布。JDK7的時候,openjdk已經成為jdk7的骨幹開發。sun jdk7是在openjdk7的基礎上發布的,大部分源代碼都是壹樣的,只有少部分被替換了。使用JRL(Java search許可證)發布。
JDK和OpenJDK之間的差異可以總結如下:
1,不同的授權協議:
Openjdk是由GPL V2協議發布的,而jdk是由JRL發布的。雖然這兩個協議都是開源的,但使用上的區別是GPL V2允許用於商業用途,而JRL只允許用於個人研究。
OpenJDK不包括部署功能:
部署的功能有:瀏覽器插件、Java Web Start、Java控制面板,這些都是Openjdk中沒有的。
2.OpenJDK的源代碼不完整:
我們很容易想到,在采用GPL協議的Openjdk中,sun jdk的部分源代碼因為產權問題不能被openjdk使用,而最重要的部分是JMX可選組件SNMP的代碼。所以這些非開源代碼讓它plug for OpenJDK編譯,也可以選擇不使用plug。Icedtea為這些不完整的部分開發了相同的函數源代碼(OpenJDK6),使得OpenJDK更加完整。
3.壹些源代碼被開放源代碼所取代:
由於產權問題,很多產權不是SUN的源代碼被壹些功能相同的開源代碼代替,比如字體光柵化器,用Free Type代替。
Openjdk只包含最簡單的jdk:
OpenJDK不包含其他軟件包,如Rhino Java DB JAXP……...而且能分開的軟件包也盡量分開,不過大部分都是免費軟件,妳可以自己下載加入。
4.妳不能使用Java商標:
這個很好理解。在安裝openjdk的機器上,鍵入“java -version”顯示openjdk,但如果是帶有Icedtea補丁的openjdk,則顯示java。(未驗證)
總之,在Java系統中,還有很多元素是不自由的,源代碼的開發也不夠徹底。我希望Oracle能讓JCP變得更加自由和開放,這是所有Java社區所希望的。