想免費繼續使用JDK嗎?從java11以後別從Oracle下載了

banq發表於2018-08-31
Java生態系統一直以來是建立在一個高質量的免費(零成本)JDK之上的,它可以從甲骨文(Oracle)和以前的Sun獲得。 今天的情況和以前不一樣了。

Java現在每六個月釋出一次版本,這個版本是指提供帶有安全補丁和重要bug修復的更新版本。到目前為止,包括Java 8在內,已經提供了多年的免費支援,當使用Java 9以及遭遇六個月的釋出週期時,這種免費的支援現在被控制得更嚴格了。

事實上,從Java 11開始,甲骨文將不會為Java提供免費的長期支援(Lts)。

下面是各個JAVA版本釋出日期和免費結束日期。

版本  	 釋出日期	      甲骨文免費支援結束
Java 8	2014年3月	2019年1月(商業用途)
Java 9	2017年9月	2018年3月
Java 10	2018年3月	2018年9月
Java 11	2018年9月	2019年3月(可能延長)
Java 12	2019年3月	2019年9月
<p class="indent">



理由很簡單,甲骨文希望將精力集中在推動Java向前發展上,其成本是由客戶直接支付的長期支援費用(而不是免費贈送),要做到這一點,他們需要開發人員不斷升級他們的Java版本,每六個月移動一次版本(並在兩者之間獲取補丁版本)。

當然,對於大多數開發者來說,這種快速升級是不可行的,但是Java現在已經被開源為OpenJDK,這意味著Oracle的免費結束支援日期並不令人擔心。

OpenJDK
需要注意的一點是,世界上大多數jdk構建版本都是基於開放原始碼的OpenJDK專案,Oracle JDK只是基於OpenJDK程式碼庫的許多構建版本之一,雖然以前Oracle在JDK中有額外的額外功能,但是Java 11已經不再是這種情況了。

許多其他供應商也提供基於OpenJDK程式碼的構建版本,這些版本可能具有額外的品牌和/或額外的非核心功能, 這些供應商中的大多數還會對OpenJDK專案做出貢獻,包括安全補丁。

關鍵是,你使用的JDK應該是主動做出的選擇,還是被動地接受 ?你能多快得到安全補丁?會支援多久?是否需要向供應商施加合同壓力以幫助解決任何問題?

獲得JDK的方法主要有兩種, 第一種是作業系統中的更新機制(例如*nix), 第二種方法是訪問URL並下載二進位制檔案。

為了進一步研究這一點,讓我們分別看一下Java 8和Java 11。

停留在Java 8?
如果您想在2019年1月之後繼續使用Java 8,下面是我所看到的選擇:

1)不關心安全。

這是完全有可能永遠停留在最後的免費發行版, 當駭客摧毀你的公司 不要抱怨 。

2)依賴作業系統更新。

在*nix平臺上,您很可能透過作業系統獲得JDK,JDK的更新是透過作業系統供應商交付的。 這是RedHat參與的關鍵-他們承諾 在RedHatEnterpriseLinux中Java 8更新直到2023年6月-但是他們也有一個“上游優先”策略,這意味著他們更願意將補丁推回“上游”OpenJDK專案。 您是否獲得到JDK的安全修補程式將取決於您的作業系統供應商,以及是否需要為這些更新支付費用。

3)支付服務費。

一些公司透過收費提供對Java的持續支援,可以訪問安全補丁流並使用某些保證更新發布版本(而不是志願者主導的方法)。 如果您有現金,那麼支付Java可能是公平和合理的?

4)在商業環境下使用非商業架構

甲骨文提供構建Java 8的非商業用途,直到2019年12月,所以你可以一直使用到那個日期為止,之後你想讓甲骨文的軟體授權團隊追著你嗎?

5)自己構建OpenJDK。

安全修補程式流透過跟蹤GPL許可下的公共Mercurial儲存庫的提交,完全有可能自己構建OpenJDK。 對於大多數公司來說, 這可能是一個非常現實的選擇。

6)使用AdoptOpenJDK構建版本。

社群團隊AdoptOpenJDK在過去的幾年裡,他們一直在忙著建立一個構建版本和測試平臺。 因此,他們現在能夠獲取安全補丁的流*並將它們轉換成釋出版本,就像你從商業產品中獲得的一樣。 他們還在執行Java TCK(測試相容性工具包),以允許這些構建被完全認證為Java SE。 他們的計劃是在Java 8構建之前生產Java 8版本,直到2022年9月在Java 17釋出一年後結束,這是一個社群構建農場專案, 但對於大多數不想付費使用Java 8的使用者來說,這可能是最好的選擇。

請注意,Azul還提供免費的OpenJDK版本構建zulu.org.

*最後兩個選項假設,一旦Oracle停止,一個小組實際上會向前邁進,接管“JDK 8 Updates”OpenJDK專案, 確切的專案細節尚未確定時,IBM表明了真正支援的態度。

停留在Java 9或Java 10上?
還是不要吧

沒有人會為Java 9或Java 10提供構建或支援,無論如何,我認為沒有理由不升級到Java 11。

停留在Java 11上?
這是一個美好的新世界,並不是百分之百清楚事情會發生的樣子。

首先,尚不清楚是否會有免費下載的Oracle JDK。

但在現實中,甲骨文JDK是否免費下載並不重要。 這是因為在Java 11中,開發人員可以將Oracle JDK和OpenJDK視為等價的, 認為OpenJDK構建版本是次要的觀點不再正確, 事實上,現在最重要的構建版本是OpenJDK。

更確切地說,在釋出日期之前,Java 11開發人員若要獲得二進位制下載應該考慮使用jdk.java.net,請不要在Oracle.com下載了。

那麼,Oracle將為Java 11提供安全補丁多長時間?

同樣,這方面的答案並非百分之百清楚。

總結
Java 11可以作為一個長期的支援版本來維護,但是,與Java 6、7和8不同的是,甲骨文將不會領導長期的支援工作。 很有可能紅帽將接管這項任務。

在Java 11釋出開始的6個月內,甲骨文將提供gpl許可的免費零成本下載jdk.java.net,包括安全補丁。

http://blog.joda.org/2018/08/java-is-still-available-at-zero-cost.html?m=1

[該貼被banq於2018-08-31 14:02修改過]

相關文章