簡介
在本文中,我們將探討Oracle Java Development Kit和OpenJDK之間的差異並進行比較。
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之間的比較(資訊圖表)
Oracle與OpenJDK之間的主要區別
Oracle與OpenJDK都是市場上的熱門選擇; 讓我們討論一下OracleJDK與OpenJDK之間的一些主要差異:
-
Oracle JDK版本將每三年釋出一次,而OpenJDK版本每三個月釋出一次。
-
Oracle JDK將更多地關注穩定性,它重視更多的企業級使用者,而OpenJDK經常釋出以支援其他效能,這可能會導致不穩定。
-
Oracle JDK支援長期釋出的更改,而Open JDK僅支援計劃和完成下一個發行版。
-
Oracle JDK根據二進位制程式碼許可協議獲得許可,而OpenJDK根據GPL v2許可獲得許可。 使用Oracle平臺時會產生一些許可影響。如Oracle 宣佈的那樣,在沒有商業許可的情況下,在2019年1月之後釋出的Oracle Java SE 8的公開更新將無法用於商業,商業或生產用途。但是,OpenJDK是完全開源的,可以自由使用。
-
Oracle JDK的構建過程基於OpenJDK,因此OpenJDK與Oracle JDK之間沒有技術差異。
-
頂級公司正在使用Oracle JDK,例如Android Studio,Minecraft和IntelliJ IDEA開發工具,其中Open JDK不太受歡迎。
-
Oracle JDK具有Flight Recorder,Java Mission Control和Application Class-Data Sharing功能,Open JDK具有Font Renderer功能,這是OpenJDK與Oracle JDK之間的顯著差異。
-
Oracle JDK具有良好的GC選項和更好的渲染器,而OpenJDK具有更少的GC選項,並且由於其包含自己的渲染器的分佈,因此具有較慢的圖形渲染器選項。
-
在響應性和JVM效能方面,Oracle JDK與OpenJDK相比提供了更好的效能。
-
與OpenJDK相比,Oracle JDK的開源社群較少,OpenJDK社群使用者的表現優於Oracle JDK釋出的功能,以提高效能。
-
如果使用Oracle JDK會產生許可影響,而OpenJDK沒有這樣的問題,並且可以以任何方式使用,以滿足完全開源和免費使用。
-
Oracle JDK在執行JDK時不會產生任何問題,而OpenJDK在為某些使用者執行JDK時會產生一些問題。
-
根據使用方的使用和許可協議,現有應用程式可以從Oracle JDK遷移到Open JDK,反之亦然。
-
Oracle JDK將從其10.0.X版本將收費,使用者必須付費或必須依賴OpenJDK才能使用其免費版本。
-
Oracle JDK不會為即將釋出的版本提供長期支援,使用者每次都必須通過更新到最新版本獲得支援來獲取最新版本。
-
Oracle JDK以前的1.0版以前的版本是由Sun開發的,後來被Oracle收購併為其他版本維護,而OpenJDK最初只基於Java SDK或JDK版本7。
-
Oracle JDK釋出時大多數功能都是開源的,其中一些功能免於開源,並且根據Sun的許可授權,而OpenJDK釋出了所有功能,如開源和免費。
-
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實現中使用的標準方面也有一些好處,這將確保應用程式穩定和良好維護。