歡迎光臨
每天分享高質量文章

那麼多 Java 版本,如何選擇合適的版本

(給ImportNew加星標,提高Java技能)

編譯:ImportNew/唐尤華

dzone.com/articles/ok-java-is-still-free-but-which-version-do-i-use-a

 

關於 Java 許可和發行版仍然有許多誤區,我也參與其中。在我任職的大學,關於如何選擇 Java 版本和確定更新策略仍然存在爭議。Oracle 渥太華總監 Donald Smith 對此進行了澄清,可能類似的澄清已經不下100次了。本文彙總了我對相關問題的總結。在開始之前,請先閱讀下麵幾篇文章:

 

讀完以後,咱們就開始吧。

 

1. 應該使用哪個 Java 發行版?

 

發行版除了最新的 JDK,還包含每季度的安全更新。它通過了 TCK 認證、質量測試,是一個可用於生產的開源 JDK。就 Java 11 來看,這個代碼庫與非開源授權的 Oracle JDK 一樣。可以通過上面鏈接中的介紹瞭解二者的區別。當然,你仍然可以從 Oracle 技術網絡(OTN)上下載 Java 並且免費用來個人開發或者培訓。儘管如此,如果對發佈 Java 產品有顧慮,可以使用 發行版,並推薦給你的客戶使用。

 

還有許多其他渠道得到 JDK,比如各種 Linux 發行版、硬體供應商、獨立軟體供應商(ISV)以及其他支持供應商,可以根據自己的需要進行選擇。稍後會對此詳細講解。

 

2. 長期支持(LTS)意味著什麼?

 

Oracle 對 LTS 版本提供付費支持,包括 Java 7、8和11,並持續相當長的一段時間。Java 11 的付費支持會持續到2026年。Oracle 還為像 Java 12 這樣的非 LTS 版本提供商業支持,前提是不被新版本取代。更多信息,請參見

 

3. Java 6個月的版本迭代意味著什麼?

 

每年的三月和九月 Java 都會發佈一個新特性,這打破了像之前 Java 8 這樣的傳統發佈周期。Java 8 的最新版本是 212,這個數字不是發佈的版本號。儘管如此,仍然有許多 Java 8 版本包含了新特性。6個月的發佈周期現在用來發佈補丁、修複 Bug 和更新。

 

我在 Twitter 上與 Oracle Java 語言首席架構師 Brian Goetz 進行了簡短交流,他確認了 Java 向前兼容的承諾。如果用 Java 8 開發了代碼,可以放心地在 Java 13 上運行。如果你正在為一個 Java 11 專案尋找新的開發者,面試者告訴你他們通過了 Java 13 培訓,那麼可以招聘。

 

4. 業界不是不考慮使用 LTS 版本以外的東西嗎?

 

起初是這樣的,但這僅僅因為自身的誤解和受到錯誤的言論影響。就像過去聽說有新版本時,你就會更新到新的 Java 8 一樣,區別在於現在有一張可預測、有規律的時間表。這與現代應用開發實踐以及其他平臺的做法一致。這些平臺更希望看到頻繁更新但可管理,而不是每3到4年發生一次結構性改變。這有助於 Java 繼續成為雲計算頭號開發平臺。

 

5. 我主要在 Web 服務器上開發,它們不是都需要 Java 8 嗎?

 

目前,IBM Open Liberty 和 RedHat Wildfly 的最新版本都在 Java 12 上運行,其他版本也支持 Java 12。我的非正式測試都運行在 Java 12 編譯的 Servlet 和 JSF 應用上,但是 Maven 中編譯器會設置 target 設為 1.8。結果證明,即使服務器、Payara 都在 Java 8 上運行也沒有出現任何問題。

 

6. 那麼其他的 Java 發行版呢?

 

Amazon、SAP、Azul、RedHat、Bellsoft 和 AdoptOpenJDK 等都提供 Java 發行版,這裡只列舉了一些。唯一顯著的區別在於, 只提供 .zip 或 .gz 檔案,其他會提供安裝包。它們幾乎都是從相同的原始碼構建的。Java 無需安裝,只要解壓然後配置應用程式、IDE 或者操作系統知道 Java 安裝路徑即可使用。安裝包的作用就是解壓,然後替你寫入系統配置。這些公司的發行版只是為 Oracle 付費版增加了一個選項,或者針對 Intel 或 AMD 以外的某個平臺提供特定版本,比如 ARM。這些公司已經做了很多年,比如 2008 年開始 Red Hat 就提供了 Java 6 的 OpenJDK 發行版。

 

7. 結論

 

如果你剛開始學習 Java 編程,就使用最新版。如果你正在使用 Java 開發,就升級到最新版。如果你擔心 Oracle 的授權協議或者更喜歡開源,就從 下載 Java,否則就從 OTN 下載。

 

致謝:本文撰寫時得到了 Donald Smith 的支持。

赞(0)

分享創造快樂