Oracle JDK vs OpenJDK

來源:互聯網
上載者:User

標籤:gpl   一點   ofo   指令碼   lib   複製   GPL協議   lan   efs   

OpenJDK是Sun在2006年末把Java開源而形成的項目,這裡的“開源”是通常意義上的源碼開放形式,即源碼是可被複用的,例如IcedTea、UltraViolet都是從OpenJDK源碼衍生出的發行版。

Oracle JDK採用了商業實現,而OpenJDK使用的是開源的FreeType。當然,“相同”是建立在兩者共有的組件基礎上的,Oracle JDK中還會存在一些Open JDK沒有的、商用閉源的功能,例如從JRockit移植改造而來的Java Flight Recorder。預計以後JRockit的MissionControl移植到HotSpot之後,也會以Oracle JDK專有、閉源的形式提供。

Oracle的項目發布經理Joe Darcy在OSCON 2011上對兩者關係的介紹也證實了OpenJDK 7和Oracle JDK 7在程式上是非常接近的,兩者共用了大量相同的代碼(如,注意圖中提示了兩者共同代碼的佔比要遠高於圖形上看到的比例),所以我們編譯的OpenJDK,基本上可以認為效能、功能和執行邏輯上都和官方的Oracle JDK是一致的。

 

OpenJDK和JDK區別
https://www.cnblogs.com/straybirds/p/8746532.html

在大多數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。(未驗證) 

 

 

refs:

Google Guava官方教程(中文版)
http://ifeve.com/google-guava/

Guava: Google Core Libraries for Java

Guava src and api doc:
https://github.com/google/guava
https://google.github.io/guava/releases/snapshot-jre/api/docs/

Oracle JDK vs OpenJDK

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.