您好,登錄后才能下訂單哦!
本篇內容介紹了“什么是Oracle JDK”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我們知道,JDK 是 Java Development Kit 的縮寫,翻譯過來就是 Java 開發工具包。
Oracle JDK 源自 Sun JDK(2009年 Oracle 收購 Sun),Oracle JDK 自然就是 Oracle 公司出品的 JDK。所以 Oracle JDK 就是 Oracle 公司開發維護的 Java 開發工具包。 但是只是這樣理解未免太片面了一點。
根據 Java Platform Group 產品管理高級總監 Donald Smith 在" Oracle JDK Releases for Java 11 and Later "中的描述:
因為本人英語爛到了令人發指的地步,為了避免浪費時間和不必要的翻譯錯誤,這里就簡單引用谷歌翻譯的結果方便粗略理解:
理想情況下,我們會根據您的情況將所有 Oracle JDK builds 簡單地稱為 GPL 或商業許可下的 "Oracle JDK",但是,由于歷史原因,盡管存在很小的差異,但我們將在 Oracle's OpenJDK builds 和 Oracle JDK 中分別引用它們。
根據以上內容,我們可以知道 Oracle JDK builds 實際上包括了一個開源版本的 Oracle's OpenJDK builds(基于 GPL 開源)和商業版本的 Oracle JDK builds,但是因為其本身寫法繁瑣和對開發沒有多大作用,外界一般把他們粗略稱為Open JDK和 Oracle JDK。(胡亂簡寫害死人系列,這是下一章的一個坑)
所以由此可知,Oracle JDK 實際上有幾種含義:
由 Oracle 公司推出的商業 JDK (最常用)
由 Oracle 公司推出的 JDK (Oracle JDK builds下所有的 JDK)
Oracle JDK builds
在大部分情況下的 Oracle JDK 指的是 Oracle 公司推出的商業版 JDK。
說到 Oracle JDK 該怎么選擇 ,這就不得不提到 Oracle JDK 發布的眾多版本了。
要是有興趣可以去 Java發展歷程 看看 Oracle JDK 到底有哪些版本。
截止目前:2021年5月4日,Oracle JDK一共有17個大版本。在眾多版本中如何選擇適合的版本進行使用,就成了一個比較頭痛的問題。要想知道究竟哪個版本適合自己,就必須得先了解一下 Java SE 的發布節奏以及每個版本間的差距。
根據 Java CPU and PSU Releases Explained里面的描述:
CPU (Critical Patch Updates):關鍵補丁更新(CPU)包含對安全漏洞和關鍵錯誤的修復。Oracle 強烈建議所有 Java SE 用戶升級到最新的 CPU 版本。Java SE CPU 版本是奇數版本(即7u71、7u65–請參閱此處有關Java SE版本編號方案的更多信息)。
PSU (Patch Set Updates):補丁集更新(PSU)包含相應 CPU 中的所有修復,以及其他非關鍵修復。只有當您受到該版本中修復的其他錯誤之一的影響時,才應使用Java PSU版本。Java SE PSU 版本是偶數版本,版本說明中列出了Java SE PSU 發行版中提供的其他修復程序。
PS:
Oracle 強烈建議所有 Java SE 用戶升級到一個版本系列的最新 CPU 版本。大多數用戶應該選擇 CPU 版本。
如果用戶受到版本說明中所述的該版本中修復的其他錯誤之一的影響,則只能使用相應的 PSU 版本。
隨后的 CPU 版本將包含當前 PSU 的所有修復程序。因此,組織應在其環境中測試當前 PSU ,以預期這些修復將包含在下一個 CPU 中。
從2014年10月開始,隨著 Java SE 7u71(CPU)和 Java SE 7u72(PSU)的發布,Oracle 計劃在 Java SE 7的每個 CPU 發布版本的同時,額外發布一個相應的 PSU 版本。
Java 每兩年發布一次,直到 Java 6于2006年12月23日在 Sun 下發布為止。由于政治上的僵局,下一個版本是2011年7月28日發布的 Java 7。
在2012年3月7日于倫敦舉行的 QCon 2012 大會上,前 Sun Microsystems 負責人、現任 Oracle Java 產品經理 Simon Ritter 承諾 Java 將回到兩年的發布周期。
但在2013年4月18日時,Oracle 公司 Java Platform Group 首席架構師 Mark Reinhold 在博客中表示:Oracle 計劃將 Java 8 的計劃發布推遲到明年,理由是為了修復 Java 的安全漏洞。
版本內的更新:例如:Java 8 > Java 8u20 > Java 8u40,大多是對一些安全漏洞的修復和小型功能更新,版本間差距較小(除安全漏洞外)。
版本間的更新:例如:Java 6 > Java 7> Java 8,有較大修改、更新和安全漏洞修復,和傳統版本一樣,每一個數字的變動都是一次巨大的改革,版本間差距巨大。
根據 Java Platform Group 產品管理高級總監 Donald Smith 在" Update and FAQ on the Java SE Release Cadence "中的描述以及 Oracle Java SE Support Roadmap 的描述,提煉出我們需要的部分:從 Java SE 9 開始 Java 開啟了一個新的版本控制和發布節奏模型。
LTS版本(Long Term Support,長期支持版本),提供至少八年的商業支持(根據市場需要有可能會延長),到期后會被新的 LTS 版本取代。
non-LTS版本(non Long Term Support,非長期支持版本),提供六個月的商業支持,到期后會被新發布的版本取代。
整體發布周期為每六個月發布一版,其中:
LTS版本:每三年發布一版
non-LTS版本:每六個月發布一版
PS:
當二者發布時間沖突時,優先發布LTS版本,non-LTS版本向后推遲一個周期。
版本內的更新:例如:Java 11 > Java 11.0.1 > Java 11.0.2,大多是對一些安全漏洞的修復,版本間差距幾乎沒有(除安全漏洞外)。
版本間的更新:例如:Java 9 > Java 10 >Java 11更接近于從 Java 8 > 8u20 > 8u40,每六個月發布一次的 non-LTS 版本更像"主要版本"的"功能發布",LTS版本更像是主要版本,而non-LTS版本更像是包含上一個LTS版本的測試版本,版本間差距較大。
知道了 Java SE 發布節奏以及不同版本的差距之后,最能影響人們做出選擇的應該就是價格問題了。 沒錯了,Oracle JDK 也是要收費的,不過并不是所有版本都收費,也不是所有用途都收費。
從 Java 的歷史版本中我們可以看到一個有趣的現象,Java SE 8 這個標題出現了兩次,分別是Java SE 8u202和之前版本和Java SE 8u211和之后的版本。
為什么會出現這個現象呢?
Java SE 8u201(CPU)/8u202(PSU)以及之前的版本使用的是 Binary Code License Java SE 8u211(CPU)/8u212(PSU)以及之后的版本使用的是 Java SE OTN License
因為這兩個許可證有著巨大的區別,所以硬生生的把 Java SE 8 硬生生分成了兩個部分,根據這兩個許可證長篇累牘的描述結合 RednaxelaFX 在 Oracle 終于要向 Java 的非付費用戶開槍了-怎么看?和 采用java開發商業軟件需要給Oracle付錢嗎?兩個問題的回答提煉出了幾個要點。
許可證 | 免費學習 | 免費個人使用 | 免費開發 | 免費測試 | 免費商業功能 | 免費商業使用 | 免費在臺式機/筆記本上使用 | 免費在服務器上使用 | 免費嵌入式設備和其他計算環境上使用 |
---|---|---|---|---|---|---|---|---|---|
Binary Code License | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Java SE OTN License | ? | ? | ? | ? | - | ? | ? | ? | ? |
PS:
商業功能指的是 Oracle JDK 自帶的 HotSpot VM 的啟動參數中是否有 -XX:+UnlockCommercialFeatures,如果有 -XX:+UnlockCommercialFeatures 就代表啟動了商業功能,這個功能默認是關閉狀態,需要手動開啟(在Java 11中被廢除)。
Java Flight Recorder(JFR) 已經加入Open JDK 11,在Open JDK 11/bin下可以直接啟動,或者在 HotSpot VM 的啟動參數中加上 -XX:StartFlightRecording。
采用 Binary Code License 的 Java 8u201/8u202及其之前的版本,個人使用和商用幾乎都是免費的(不使用商業功能和嵌入式設備的情況下)。
采用 Java SE OTN License 的 Java 8u211/8u212及其之后的版本,個人使用免費,商用就要購買許可證才可以(雖然可以偷偷商用,不過那種操作就跟裸奔過雷區一樣,你也不知道啥時候會灰飛煙滅,也不知道 Oracle 會不會等養肥了再宰)。
“什么是Oracle JDK”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。