OpenJDK和JDK區別


OpenJDK和JDK區別

OpenJDK與JDK的區別分析
Sun的JDK7、OpenJDK及IcedTea釋疑

簡介(ps):

簡單來說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:

OpenJDK不包含其他的軟件包,比如Rhino Java DB JAXP……,並且可以分離的軟件包也都是盡量的分離,但是這大多數都是自由軟件,你可以自己下載加入。
OpenJDK源代碼不完整:

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

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

由於產權的問題,很多是SUN JDK的源代碼被替換成一些功能相同的開源代碼,比如說字體柵格化引擎,使用Free Type代替。
不能使用Java商標:

這個很容易理解,在安裝OpenJDK的機器上,輸入“java -version”顯示的是OpenJDK,但是如果是使用Icedtea補丁的OpenJDK,顯示的是java。(未驗證)

借鑒於
https://www.cnblogs.com/straybirds/p/8746532.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM