Oracle與OpenJDK之間的區別

油膩的Java發表於2019-04-01

vs.png

簡介

在本文中,我們將探討Oracle Java Development KitOpenJDK之間的差異並進行比較。

Oracle JDK

Oracle JDK由Oracle公司開發,該公司是Sun許可證,基於Java標準版規範實現。它以二進位制產品的形式釋出。它支援多種作業系統,如Windows,Linux,Solaris,MacOS等。它支援不同的平臺,如Intel 32位和64位架構,ARM架構和SPARC。它完全基於Java程式語言。之後,該許可證宣佈將根據GPL(通用公共許可證)許可證釋出。Oracle JDK包含許多元件作為庫形式的程式設計工具集合。

我們來看看Java SE的歷史:

  • JDK Beta - 1995
  • JDK 1.0 - 1996年1月
  • JDK 1.1 - 1997年2月
  • J2SE 1.2 - 1998年12月
  • J2SE 1.3 - 2000年5月
  • J2SE 1.4 - 2002年2月
  • J2SE 5.0 - 2004年9月
  • Java SE 6 - 2006年12月
  • Java SE 7 - 2011年7月
  • Java SE 8(LTS) - 2014年3月
  • Java SE 9 - 2017年9月
  • Java SE 10(18.3) - 2018年3月
  • Java SE 11(18.9 LTS) - 2018年9月
  • Java SE 12(19.3) - 2019年3月

注意:不再支援斜體版本。

我們可以看到Java SE的主要版本大約每兩年釋出一次,直到Java SE 7.從Java SE 6開始花了五年時間,之後又花了三年時間到達Java SE 8。

自Java SE 10以來,我們可以期待每六個月釋出一次新版本。但是,並非所有版本都是長期支援(LTS)版本。由於Oracle的釋出計劃,LTS產品釋出僅每三年釋出一次。

OpenJDK

OpenJDK是Java SE平臺版的開源和免費實現,它是Sun Corporation(現在的Oracle Corporation)於2006年開始的開發結果。它是根據GNU GPL許可證授權的。它最初於2007年釋出。它由Oracle Corporation,Red Hat,IBM,Apple Inc.,OpenJDK和Java Community等開發。它是使用C ++和Java程式語言編寫的。它支援不同的作業系統,如FreeBSD,Linux,Microsoft Windows,Mac OS X. OpenJDK是Java SE Platform Edition的官方參考實現。

現在讓我們看看OpenJDK版本:

  • OpenJDK 6專案 - 基於JDK 7,但經過修改後提供了Java 6的開源版本
  • OpenJDK 7專案 - 2011年7月28日
  • OpenJDK 7u專案 - 該專案開發Java Development Kit 7的更新
  • OpenJDK 8專案 - 2014年3月18日
  • OpenJDK 8u專案 - 該專案開發Java Development Kit 8的更新
  • OpenJDK 9專案 - 2017年9月21日
  • JDK專案於2018年3月10日至20日釋出
  • JDK專案於2018年9月11日至25日釋出
  • JDK專案釋出12 - 穩定階段

Oracle與OpenJDK之間的比較(資訊圖表)

對比圖.jpg

Oracle與OpenJDK之間的主要區別

Oracle與OpenJDK都是市場上的熱門選擇; 讓我們討論一下OracleJDK與OpenJDK之間的一些主要差異:

  1. Oracle JDK版本將每三年釋出一次,而OpenJDK版本每三個月釋出一次。

  2. Oracle JDK將更多地關注穩定性,它重視更多的企業級使用者,而OpenJDK經常釋出以支援其他效能,這可能會導致不穩定。

  3. Oracle JDK支援長期釋出的更改,而Open JDK僅支援計劃和完成下一個發行版。

  4. Oracle JDK根據二進位制程式碼許可協議獲得許可,而OpenJDK根據GPL v2許可獲得許可。 使用Oracle平臺時會產生一些許可影響。如Oracle 宣佈的那樣,在沒有商業許可的情況下,在2019年1月之後釋出的Oracle Java SE 8的公開更新將無法用於商業,商業或生產用途。但是,OpenJDK是完全開源的,可以自由使用。

  5. Oracle JDK的構建過程基於OpenJDK,因此OpenJDK與Oracle JDK之間沒有技術差異。

  6. 頂級公司正在使用Oracle JDK,例如Android Studio,Minecraft和IntelliJ IDEA開發工具,其中Open JDK不太受歡迎。

  7. Oracle JDK具有Flight Recorder,Java Mission Control和Application Class-Data Sharing功能,Open JDK具有Font Renderer功能,這是OpenJDK與Oracle JDK之間的顯著差異。

  8. Oracle JDK具有良好的GC選項和更好的渲染器,而OpenJDK具有更少的GC選項,並且由於其包含自己的渲染器的分佈,因此具有較慢的圖形渲染器選項。

  9. 在響應性和JVM效能方面,Oracle JDK與OpenJDK相比提供了更好的效能。

  10. 與OpenJDK相比,Oracle JDK的開源社群較少,OpenJDK社群使用者的表現優於Oracle JDK釋出的功能,以提高效能。

  11. 如果使用Oracle JDK會產生許可影響,而OpenJDK沒有這樣的問題,並且可以以任何方式使用,以滿足完全開源和免費使用。

  12. Oracle JDK在執行JDK時不會產生任何問題,而OpenJDK在為某些使用者執行JDK時會產生一些問題。

  13. 根據使用方的使用和許可協議,現有應用程式可以從Oracle JDK遷移到Open JDK,反之亦然。

  14. Oracle JDK將從其10.0.X版本將收費,使用者必須付費或必須依賴OpenJDK才能使用其免費版本。

  15. Oracle JDK不會為即將釋出的版本提供長期支援,使用者每次都必須通過更新到最新版本獲得支援來獲取最新版本。

  16. Oracle JDK以前的1.0版以前的版本是由Sun開發的,後來被Oracle收購併為其他版本維護,而OpenJDK最初只基於Java SDK或JDK版本7。

  17. Oracle JDK釋出時大多數功能都是開源的,其中一些功能免於開源,並且根據Sun的許可授權,而OpenJDK釋出了所有功能,如開源和免費。

  18. Oracle JDK完全由Oracle公司開發,而Open JDK專案由IBM,Apple,SAP AG,Redhat等頂級公司加入和合作。

Oracle與OpenJDK比較表

以下是Oracle與OpenJDK之間最重要的比較:

Oracle與OpenJDK之間比較 Oracle JDK OpenJDK
執照 它是根據GPL(通用公共許可證)許可證授權的 它是根據GNU GPL(通用公共許可證)許可證授權的
發展 由Sun Microsystems Inc.開發 由Oracle,OpenJDK和Java社群開發
效能 根據Sun JDK的開發和實現提供效能 提供由Oracle JDK之上的一些供應商開發的高效能
可擴充套件性 根據Sun的實施 可以使用其他庫或Oracle JDK進行改進
費用 Sun的官方執行許可證 開源和免費實施可供免費使用
速度 由Sun Microsystems Inc.開發 第三方供應商將通過進行一些調整來提高JVM的速度
作業系統 支援Windows,Linux,Solaris,MacOS FreeBSD,Linux,Microsoft Windows,Mac OS X.
便於使用 可以與任何應用程式開發一起使用 可以與任何應用程式開發和其他開源工具一起使用,以提高開源實現模型的效能。

結論

Oracle JDK可用於開發Java Web應用程式,獨立應用程式以及許多其他圖形使用者介面以及其他開發工具。Oracle JDK執行的所有操作或任務也可以由OpenJDK執行,但只有Oracle與OpenJDK之間的區別在於Open JDK在現有Oracle JDK之上的許可和其他工具整合和實現。使用OpenJDK的優點是可以根據應用程式的要求修改效能,可伸縮性和實現,以根據需要調整Java虛擬機器。

OpenJDK的優勢更多,Oracle JDK的使用在Oracle JDK實現中使用的標準方面也有一些好處,這將確保應用程式穩定和良好維護。

相關文章