OpenJDK和JDK區別

OpenJDK和JDK區別html

OpenJDK與JDK的區別分析java

Sun的JDK七、OpenJDK及IcedTea釋疑web

簡介(ps):java-web

簡單來講jdk從7開始,弄出一個能夠自由使用的公共版本(openjdk)。
原來繼續分爲我的版(研究使用)和企業(商用)是有版權的。

關於開源: 原始的jdk並無徹底開源。
openjdk,應該是徹底開源的,對於公用原始版的部分不能開源的應該也有本身的開源實現。

 

在大多數LINUX發行版本里,內置或者經過軟件源安裝的JDK,都是安裝的OpenJDK,架構

一,那麼到底什麼是OpenJDK

歷史上的緣由是,OpenJDK是JDK的開放源碼版本,以GPL協議的形式發佈。(General Public License)

在JDK7的時候,OpenJDK已經成爲JDK7的主幹開發版,SUN JDK7是在OpenJDK7的基礎上發佈的,其大部分源碼都相同,只有少部分源碼被替換掉。
使用JRL(Java Research License,Java研究受權協議)發佈。
至於OpenJDK6則更是有其複雜的一面,首先是OpenJDK6是JDK7的一個分支,而且儘可能去除Java SE7的新特性,使其儘可能的符合Java6的標準。 

二,關於JDK和OpenJDK的區別,能夠概括爲如下幾點: 

受權協議的不一樣: 工具

OpenJDK採用GPL V2協議發佈,而JDK則採用JRL協議發佈。
兩個協議雖然都是開放源代碼的,可是在使用上的不一樣在於GPL V2容許在商業上使用,而JRL只容許我的研究使用

OpenJDK只包含最精簡的JDK: post

OpenJDK不包含其餘的軟件包,好比Rhino Java DB JAXP……,而且能夠分離的軟件包也都是儘可能的分離,可是這大多數都是自由軟件,你能夠本身下載加入。 

OpenJDK源代碼不完整: 字體

這個很容易想到,在採用GPL協議的OpenJDK中,SUN JDK的一部分源代碼由於產權的問題沒法開放OpenJDK使用,其中最主要的部分就是JMX中的可選元件SNMP部分的代碼。
所以這些不能開放的源代碼將它做成plug,以供OpenJDK編譯時使用,你也能夠選擇不要使用plug。
而Icedtea則爲這些不完整的部分開發了相同功能的源代碼(OpenJDK6),促使OpenJDK更加完整。

OpenJDK和IcedTea的關係:url

IcedTea項目最初是因爲OpenJDK不完整(因產權 而形成的障礙)而創立的,社區須要一個完整的開源工具鏈及代碼庫。
IcedTea長期以來一直是OpenJDK的一套補丁,正如剛纔我所說到的,它有一個 基於「./configure」的不一樣的構建系統。
在OpenJDK中,咱們已經替換了產權代碼(encumbered code),所以再也不有障礙了。
正由於咱們的努力,IcedTea項目已經減小了使用補丁的數量。
IcedTea中看上去不錯的一點是,它的 configure腳本使得在多種不一樣的模式下構建OpenJDK變得很容易,好比使用Zero Assembler Port在非x86/sparc芯片上來支持編譯等等。
IcedTea提供的一大塊內容是plugin/java-web-start基礎架構。

部分源代碼用開源代碼替換: 
spa

因爲產權的問題,不少是SUN JDK的源代碼被替換成一些功能相同的開源代碼,好比說字體柵格化引擎,使用Free Type代替。 

不能使用Java商標: 

這個很容易理解,在安裝OpenJDK的機器上,輸入「java -version」顯示的是OpenJDK,可是若是是使用Icedtea補丁的OpenJDK,顯示的是java。(未驗證) 
相關文章
相關標籤/搜索