部分收費的Oracle JDK VS 完全免費的OpenJDK

原創於【模稜博客】 http://www.flammulina.com

本文將討論Oracle JDKOpenJDK之間的區別。注意目前 OpenJDKOracle JDK 僅由Oracle創建和維護。在詳細介紹之前,讓我們回顧一下JDK是什麼,在開始對比Oracle JDKOpenJDK之間的差異。

部分收費的Oracle JDK VS 完全免費的OpenJDK

什麼是JDK?

Java Development Kit(JDK)包含Java Runtime Environment(JRE)以及用於編譯和調試用於開發Java應用程序的Java代碼的工具。JRE由庫,Java虛擬機(JVM),Java Pluging和Java Web Start組成,用於運行Java應用程序。JRE作為獨立版本不包含編譯器和調試工具。

部分收費的Oracle JDK VS 完全免費的OpenJDK

Oracle JDK VS OpenJDK

  1. Oracle JDK部分版本收費 ,如果要獲得商業Oracle JDK許可證,我們需要直接聯繫Oracle銷售人員。
  2. OpenJDK是完全免費的,可以按照GPL v2許可證使用。
  3. Oracle JDK 之前被稱為SUN JDK,這是在Oracle收購之前。早些時候,它是Java語言的官方專有實現。收購後,它被命名為Oracle JDK ,Oracle的團隊維護著JDK。
  4. OpenJDK 是Java標準版平臺的開源實現,由Oracle和開放Java社區提供。
  5. OpenJDK 是Java SE 7中Java Standard Edition的官方參考實現。
  6. OpenJDK 根據許可證GPL v2發佈,其中Oracle JDK根據Oracle二進制代碼許可協議獲得許可。
  7. 實際上,Oracle JDK的構建過程是從OpenJDK源代碼構建的。因此,Oracle JDK和OpenJDK之間沒有重大的技術差異。
  8. 除基本代碼外,Oracle JDK還包括Oracle Java插件和Java WebStart的實現。還包括第三方封閉源代碼和開源組件。
  9. OpenJDK Font Renderer 和Oracle JDK Flight Recorder是Oracle JDK和OpenJDK之間顯著的主要區別。
  10. Oracle JDK 的商業組件與可免費下載的Oracle JDK捆綁在一起,並且我們需要使用顯式標誌來運行它們。
  11. JRockit 是Oracle的JVM,從Java SE 7開始,H​​otSpot和JRockit合併為一個JVM。所以現在我們只有合併的HotSpot JVM可用。
  12. 有些情況下,人們聲稱他們在運行OpenJDK時遇到了問題,並且在切換到Oracle JDK時得到了解決。考慮到Oracle JDK從OpenJDK獲取其來源這一事實很難證明。
  13. 主要的Linux發行版(如Ubuntu,Fedora和Red Hat Enterprise Linux)提供OpenJDK或其變體作為其默認的Java SE實現。
  14. OpenJDK 6是一個嘗試與Oracle JDK 6兼容的後端。它取自OpenJDK 7 b20並刪除了Java 7功能,使其與Java SE 6兼容。
  15. OpenJDK 8源代碼託管在http://hg.openjdk.java.net/jdk8
  16. OpenJDK 8和OpenJDK 9的目標並沒有從OpenJDK 7改變。它們看起來是一樣的,即為Java Standard Edition提供開源參考實現。
  17. OpenJDK是Ubuntu使用的Java的默認版本,最容易安裝,而Oracle Java 7/8是Oracle自己的Java 7/8版本。
部分收費的Oracle JDK VS 完全免費的OpenJDK

發佈時間

OpenJDK

OpenJDK將每6個月發佈一次功能,只有在下一個功能發佈時才會支持。它本質上是針對開發人員的連續發佈流。

Oracle JDK

Oracle JDK的目標更多是針對重視穩定性的企業用戶。它基於OpenJDK的一個版本,但隨後獲得了長期支持(LTS)。Oracle JDK每3年發佈一次。

部分收費的Oracle JDK VS 完全免費的OpenJDK

發展歷程

OpenJDK

2008年5月,Fedora 9及Ubuntu 8.04於發行版中發佈OpenJDK,完整地基於自由及開放源代碼的OpenJDK。

2008年6月,IcedTea 6(Fedora 9上的一個包版本的OpenJDK)宣佈已通過Technology Compatibility Kit測試,可以稱得上是一個完全兼容的Java 6的運行環境。

2008年7月12日,Debian接受了OpenJDK-6的不穩定版本,但目前情況已經穩定。OpenJDK也可以在openSUSE、Red Hat Enterprise Linux及其派生系統,如CentOS中找到。

2008年7月,OpenJDK 7可以運行在Mac OS X和其他的BSD發行版。

2009年7月,Ubuntu 9.04中的二進制版本OpenJDK在Java SE 6 JCK中通過了所有的兼容性測試。

2016年8月22日,Google在Android 7.0 Nougat中,將專利的JDK替換成開源方案的OpenJDK,以徹底解決Java的專利問題。

Oracle JDK

Java EE,Java平臺企業版(Java Platform Enterprise Edition),之前稱為Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名為Jakarta EE

。是Sun公司為企業級應用推出的標準平臺。Java平臺共分為三個主要版本Java EE、Java SE和Java ME。

Sun公司在1998年發表JDK1.2版本的時候,使用了新名稱Java 2 Platform,即“Java2平臺”,修改後的JDK稱為Java 2 Platform Software Developing Kit,即J2SDK。並分為標準版(Standard Edition,J2SE),企業版(Enterprise Edition,J2EE),微型版(MicroEdition,J2ME)。J2EE便由此誕生。

2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名以取消其中的數字“2”:J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME。

隨著Java技術的發展,J2EE平臺得到了迅速的發展,成為Java語言中最活躍的體系之一。現如今,J2EE不僅僅是指一種標準平臺,它更多的表達著一種軟件架構和設計思想。


分享到:


相關文章: