作者:petercao
https://www.cnblogs.com/bluestorm/p/8965656.html

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是一致的,

在大多數Linux發行版本里,內置或者通過軟體源安裝的JDK,都是安裝的OpenJDK,
什么是OpenJDK?
歷史上的原因是,OpenJDK是JDK的開放原始碼版本,以GPL協議的形式發布,
開源協議參考:軟體開發中的開源協議詳解
在JDK7的時候,OpenJDK已經成為JDK7的主干開發版,SUN JDK7是在OpenJDK7的基礎上發布的,其大部分原始碼都相同,只有少部分原始碼被替換掉,使用JRL(Java Research License,Java研究授權協議)發布,
至于OpenJDK6則更是有其復雜的一面,首先是OpenJDK6是JDK7的一個分支,并且盡量去除Java SE7的新特性,使其盡量的符合Java6的標準,
JDK和OpenJDK的區別
1.授權協議的不同
OpenJDK采用GPL V2協議發布,而JDK則采用JRL協議發布,兩個協議雖然都是開放源代碼的,但是在使用上的不同在于GPL V2允許在商業上使用,而JRL只允許個人研究使用,
2.OpenJDK只包含最精簡的JDK
OpenJDK不包含其他的軟體包,比如Rhino Java DB JAXP……,并且可以分離的軟體包也都是盡量的分離,但是這大多數都是自由軟體,你可以自己下載加入,
3.OpenJDK源代碼不完整
這個很容易想到,在采用GPL協議的OpenJDK中,SUN JDK的一部分源代碼因為產權的問題無法開放OpenJDK使用,其中最主要的部分就是JMX中的可選元件SNMP部分的代碼,
因此這些不能開放的源代碼將它作成plug,以供OpenJDK編譯時使用,你也可以選擇不要使用plug,
而Icedtea則為這些不完整的部分開發了相同功能的源代碼(OpenJDK6),促使OpenJDK更加完整,
4.OpenJDK和IcedTea的關系
IcedTea專案最初是由于OpenJDK不完整(因產權 而造成的障礙)而創立的,社區需要一個完整的開源工具鏈及代碼庫,
IcedTea長期以來一直是OpenJDK的一套補丁,正如剛才我所說到的,它有一個 基于“./configure”的不同的構建系統,
在OpenJDK中,我們已經替換了產權代碼(encumbered code),因此不再有障礙了,正因為我們的努力,IcedTea專案已經減少了使用補丁的數量,
IcedTea中看上去不錯的一點是,它的 configure腳本使得在多種不同的模式下構建OpenJDK變得很容易,比如使用Zero Assembler Port在非x86/sparc芯片上來支持編譯等等,
IcedTea提供的一大塊內容是plugin/java-web-start基礎架構,
5.部分源代碼用開源代碼替換
由于產權的問題,很多是SUN JDK的源代碼被替換成一些功能相同的開源代碼,比如說字體柵格化引擎,使用Free Type代替,
6.不能使用Java商標
這個很容易理解,在安裝OpenJDK的機器上,輸入“java -version”顯示的是OpenJDK,但是如果是使用Icedtea補丁的OpenJDK,顯示的是java,(未驗證)
關注公眾號Java技術堆疊回復"面試"獲取我整理的2020最全面試題及答案,
推薦去我的博客閱讀更多:
1.Java JVM、集合、多執行緒、新特性系列教程
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
4.Java、后端、架構、阿里巴巴等大廠最新面試題
覺得不錯,別忘了點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/149317.html
標籤:Java
