就在昨天,Oracle發佈了新版的JDK 11,我相信不少Java開發人員沉溺在編碼的樂趣中,還沒注意到相關消息。html
在2017年9月份,Oracle官網發佈了一則博客
https://blogs.oracle.com/java...java
總結來講,主要內容涉及到:redis
- 調整JAVA SE的版本發佈計劃節奏;從JAVA 9開始,版本發佈以半年爲週期,同時限制安全補丁支持的時限
Version |
Release date |
Oracle免費提供安全補丁的時間 |
Java 8 |
March 2014 |
January 2019 (商業用途) |
Java 9 |
Sept 2017 |
March 2018 |
Java 10 |
March 2018 |
Sept 2018 |
Java 11 |
Sept 2018 |
March 2019(目前已經肯定爲LTS,因此時間會有調整) |
Java 12 |
March 2019 |
Sept 2019 |
- 將JAVA SE原有的BCL license,調整爲GPL v2 license;並將代碼提交至OpenJDK平臺 http://openjdk.java.net
- 由Oracle 提交的源代碼,衍生出Oracle OpenJDK 和 Oracle JDK的不一樣編譯版本。
二者的主要區別在於Oracle JDK須要客戶直接付費,或使用Oracle的其餘商業產品,才能在商業環境下使用;而Oracle OpenJDK 容許直接用於商業環境,可是大版本發佈後最多會有兩次安全補丁的升級,以後Oracle再也不負責此大版本維護,若是用戶想要持續得到安全的升級,則須要及時升級到新的Oracle OpenJDK大版本。
- 因爲代碼開源,而且Oracle已經在Java 11中將Oracle JDK和Oracle OpenJDK的特性差別最小化(存在差別的部分,大可能是Oracle的商業特性),因此OpenJDK的社區能夠基於源代碼編譯出社區版的JDK,甚至部分公司能夠定製化加入本身的特性並將JDK商業化(實際以前已是如此運做)。
基於上述的梳理,不難看出,對於Java開發人員,甚至是基於Java做爲主要編程工具的公司來講,若是想在商業環境上運行本身的產品,能夠有以下選擇:編程
- Oracle JDK
前文提到雖然Oracle JDK只能在付費狀況下商用,可是目前Oracle尚未容許單獨爲Oracle JDK付費的策略,根據Oracle的說明,要到2026年左右纔會有具體的措施出臺;所以現階段基本Oracle JDK和Oracle 的其餘商業產品綁定;
- Oracle OpenJDK
這個上文已經提到,再也不說明;
- AdoptOpenJDK
這個JDK是基於社區的編譯版本,與Oracle OpenJDK不一樣,在Oracle終止補丁維護後,此版本仍然會基於安全及其餘補丁提供更新,IBM和Red Hat 都表示他們會提供相關的安全補丁
- Red Hat OpenJDK
Red Hat的商業版本,但若是使用Red Hat的操做系統,則已經包含
- 其餘OpenJDK,具體能夠參見文末最後的連接。
參考連接
https://blogs.oracle.com/java...
https://blogs.oracle.com/java...
https://www.oracle.com/techne...
https://blog.joda.org/2018/09...安全