Oracle JDK 和 Open JDK
Oracle JDK |
Open JDK |
|
來源 |
Oracle團隊維護 |
Oracle和Open Java社區(qū) |
授權(quán)協(xié)議 |
Java 17及更高版本 Oracle Java SE 許可證Java16及更低版本甲骨文免費條款和條件 (NFTC) 許可協(xié)議 (oracle.com) |
GPL v2許可證 |
關(guān)系 |
由Open JDK構(gòu)建,增加了少許內(nèi)容 |
|
發(fā)行周期 |
6個月,每兩年一個LTS |
6個月 |
是否收費 |
2021年9月起Java17及更高版本所有用戶免費。16及更低版本,個人用戶、開發(fā)用戶免費。 |
2017年9月起,所有版本免費 |
LTS |
目前7,8,11,17 |
無,但是有社區(qū)編譯的其他支持 |
對語法的支持 |
一致 |
一致 |
性能 |
最佳 |
接近,幾乎無差 |
其他的可選 JDK發(fā)行版
名稱 |
支持團隊/公司 |
說明 |
OpenJDK |
Sun->甲骨文 |
原是Sun Microsystems公司為Java平臺構(gòu)建的Java開發(fā)環(huán)境(JDK)的開源版本,,完全自由,,開放源碼 |
Zulu |
Azul Systems |
需要為其面向網(wǎng)絡(luò)的客 戶提供基于服務(wù)器的Java應(yīng) 用程序的公司提供服務(wù),,或者為嵌入式和物聯(lián)網(wǎng)用例提 供基于Java的系統(tǒng) |
Liberica |
BellSoft |
100% 開源Java實現(xiàn)。它是由BellSoft貢獻的OpenJDK構(gòu)建的 |
Temurin |
eclipse |
Adoptopenjdk自2020年7月交給eclipse,,現(xiàn)在改名Temurin(Adoptium.net) |
openJ9 |
IBM |
IBM打包的openJ9 JVM的JDK, 有區(qū)別于 Oracle HotSpot JVM , 極省內(nèi)存 |
Microsoft JDK |
Microsoft微軟 |
|
SapMachine |
SAP |
是OpenJDK 項目的下游版本。它用于為希望使用OpenJDK運行其應(yīng)用程序的SAP客戶和合作伙 伴構(gòu)建和維護支持SAP的OpenJDK版本 |
RedHat OpenJDK |
RedHat |
免費的 、多平臺的、面向生產(chǎn)的開放Java開發(fā)工具包(OpenJDK) 發(fā)行版 |
Amazon Corretto |
Amazon |
阿里巴巴內(nèi)部 OpenJDK 定制版AJDK 的開源版本 |
Dragonwell |
阿里巴巴 |
阿里巴巴內(nèi)部 OpenJDK 定制版AJDK 的開源版本,,AJDK 為在線電商、金融、物流做了結(jié)合業(yè)務(wù)場景的優(yōu)化,,運行在超大規(guī)模的,,100,000+ 服務(wù)器的阿里巴巴數(shù)據(jù)中心 |
Kona |
騰訊 |
騰訊云內(nèi)部的默認(rèn) JDK,,用于云計算和其他 Java 應(yīng)用程序 |
畢昇JDK |
華為 |
畢昇JDK基于OpenJDK開發(fā),,是一個高性能、可用于生產(chǎn)環(huán)境的OpenJDK發(fā)行版 |
商業(yè)收費問題



什么時候又開始免費了
2021年9月起 java 17 及更高版本所有用戶免費, 16及更低版本,個人用戶,開發(fā)用戶免費
什么時候開始收費
Oracle JDK從2019年4月16號開始商用商用商用收費了
哪個版本開始收費
2019年4月16日當(dāng)天,Oracle發(fā)布了Oracle JDK的8u211和8u212兩個版本 (屬于JDK8系列) ,并從這兩個版本開始將JDK的授權(quán)許可從BCL換成了OTN!也就是從這兩個版本開始 商用收費了!
啥叫商用收費
商用收費就是當(dāng)你使用 Oracle JDK 8u211及以上版本進行具有商業(yè)用途(盈利目的)的應(yīng)用或工具的開發(fā)時是要收費的,這時是要先向Oracle繳費取得授權(quán)的!當(dāng)然,一開始你沒繳費取得授權(quán)就直接用了,Oracle也是不知道的啦!但當(dāng)你的產(chǎn)品應(yīng)用或工具越做越大,越來越有名氣和市場影響力時,說不定哪天就收到了Oracle發(fā)來的律師函,會搞得你公司不要不要的,甚至破產(chǎn)!
Oracle JDK的最后一個免費版本是哪個呢?
是2019年1月15日發(fā)布的Oracle JDK 8u201和8u202!
說好的 最后一個 免費版本,為什么寫了兩個版本號 8u201和8u202呢?我到底要用哪一個?
這就涉及到Oracle跟Oracle JDK的使用者之間的一個小小的約定或小常識了!
從 2014 年 10 月發(fā)布 Java SE 7 Update 71 (Java SE 7u71) 開始,Oracle在發(fā)布Oracle JDK關(guān)鍵補丁更新 (CPUs:Critical Patch Updates) 的同時一般會發(fā)布相應(yīng)的補丁集更新 (PSUs:Patch Set Updates)。
Oracle JDK 關(guān)鍵補丁更新 (CPUs) 包含安全漏洞修復(fù)和重要漏洞修復(fù),Oracle 強烈建議所有Oracle JDK用戶及時升級到最新的 CPU 版本,Oracle JDK 關(guān)鍵補丁更新 (CPUs) 版本號采用 奇數(shù)編號!
Oracle JDK 補丁集更新 (PSUs) 包含相應(yīng) CPUs 中的所有修復(fù) 以及其他非重要修復(fù),僅當(dāng)您受到Oracle JDK關(guān)鍵補丁更新 (CPUs)版本之外的其他漏洞的影響時才應(yīng)當(dāng)使用相應(yīng)的補丁集更新 (PSUs) ,Oracle JDK 補丁集更新 (PSUs) 版本號采用 偶數(shù)編號!
所以,一般情況下我們只要下載 奇數(shù)編號 的最新版本更新就行了!記住:商業(yè)收費版本的不要用于商業(yè)用途,這不是小事情,嚴(yán)重起來會讓你的公司倒閉
如果你真的很煩這些收費授權(quán)的Oracle JDK (主要應(yīng)該是想節(jié)約成本) ,但又想盡量跟上或用上最新的JDK功能特性,那么Oracle官方其實還提供了一個完全免費開源的JDK版本——OpenJDK
Oracle在 GPL許可下提供了開源的 OpenJDK 發(fā)行版,最新版的OpenJDK一般都會緊跟對應(yīng)版本的Oracle JDK,功能特性基本沒有差異!
版本發(fā)布時間
版本 |
名稱 |
發(fā)行日期 |
JDK 1.0 |
Oak(橡樹) |
1996-01-23 |
JDK 1.1 |
Coffce(咖啡) |
1997-02-19 |
J2SE 1.2 |
Playground (運動場) |
1998-12-04 |
J2SE 1.3 |
Kestrel (美洲紅隼) |
2000-05-08 |
J2SE 1.4 |
Merlin (灰背隼) |
2002-02-13 |
Java SE 5.0 (1.5.0) |
Tiger (老虎) |
2004-09-30 |
Java SE 6.0 (1.6.0) |
Mustang (野馬) |
2006-04 |
Java SE 7.0 (1.7.0)(LTS) |
Dolphin (海豚) |
2011-07-28 |
Java SE 8.0 (1.8.0)(LTS) |
Spider (蜘蛛) |
2014-03-18 |
Java SE 9.0 |
從Java 8開始開發(fā)代號已經(jīng)棄用了 |
2017-09-21 |
Java SE 10.0 |
2018-03-21 |
|
Java SE 11.0(LTS) |
2018-09-25 |
|
Java SE 12.0 |
2019-02-07 |
|
Java SE 13.0 |
2019-09-26 |
|
Java SE 14.0 |
2020-03-17 |
|
Java SE 15.0 |
2020-09-15 |
|
Java SE 16.0 |
2021-03-16 |
|
Java SE 17.0(LTS) |
2021-09-14 |
|
Java SE 18.0 |
2022-03-22 |
|
Java SE 19.0 |
2022-09-20 |
LTS生命周期
版本 |
開始日期 |
結(jié)束日期 |
延期結(jié)束日期 |
主要特性 |
7(LTS) |
2011年7月 |
2019年7月 |
2022年7月 |
|
8(LTS) |
2014年3月 |
2022年3月 |
2030年12月 |
1. Stream API 流 2. 新的日期和時間API,LocalDate、LocalDateTime3. Lambda語法 4. 函數(shù)式接口 5. 接口可以添加非抽象方法,default關(guān)鍵字6. JVM移除永久代,增加元空間 |
11(LTS) |
2018年9月 |
2023年9月 |
2026年9月 |
1. 模塊化 (jdk9) 2. 默認(rèn)G1垃圾回收器(jdk9) 3. 局部變量類型推斷(jdk10) 4. 移除Java EE(jdk11) 5. 合并javac和java命令(jdk11) |
17(LTS) |
2021年9月 |
2026年9月 |
2029年9月 |
1. 試驗ZGC,需要在JVM配置()jdk11) 2. 文本塊升級(jdk13)3. switch支持lambda(jdk13預(yù)覽,jdk14) 4. ZGC 可用于生產(chǎn)環(huán)境(jdk15) 5. record(jdk14,15預(yù)覽,jdk16) 6. Realed class密封類(jdk15,16預(yù)覽,jdk17) 7. 統(tǒng)一日志支持異步日志刷新(jdk17) |
21(LTS) |
2023年9月 |
2028年9月 |
2031年9月 |
知識點
區(qū)別

Java 技術(shù) = Java 語言 + Java 平臺
Java 平臺 = JVM + JDK
Java SE = JDK 根基
Java EE,JavaME,JavaFX 是 Java SE 的擴展
簡單點說
Java SE 是標(biāo)準(zhǔn)版本 用于開發(fā)和部署桌面、服務(wù)器以及嵌入設(shè)備和實時環(huán)境中的Java應(yīng)用程序。如 Java應(yīng)用程序開發(fā)平臺Eclipse
Java EE 是網(wǎng)站開發(fā)方向的 主要針對企業(yè)應(yīng)用的開發(fā) 如電子商務(wù)網(wǎng)站、ERP系統(tǒng)
Java ME 是手機方向的 主要針對消費類電子設(shè)備的 如: 蜂窩電話和可視電話、數(shù)字機頂盒、汽車導(dǎo)航系統(tǒng) 手機游戲,電視機頂盒和打印機相關(guān)的嵌入式設(shè)備軟件
Java SE: Java Platform,Standard Edition 以前稱為 J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實時環(huán)境中使用的 Java 應(yīng)用程序,包含了支持 Java Web 服務(wù)開發(fā)的類,為(Java EE)提供基礎(chǔ)。
Java EE: Java Platform,Enterprise Edition 這個版本以前稱為 J2EE。企業(yè)版幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(service-oriented architecture,SOA)和 Web 2.0 應(yīng)用程序。
Java ME: Java Platform,Micro Edition 這個版本以前稱為 J2ME。為在移動設(shè)備和嵌入式設(shè)備(比如手機、PDA、電視機頂盒和打印機)上運行的應(yīng)用程序提供一個健壯且靈活的環(huán)境。包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對可以動態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持?;?Java ME 規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個設(shè)備的本機功能。
JavaFX: JavaFX Script 編程語言 是一種declarative, statically typed(聲明性的、靜態(tài)類型)腳本語言
Java EE 與 Java SE 有什么區(qū)別?
Java EE 相比于Java SE 來說,除了多出包(Package)以外,還多了若干 Java 容器,如 Tomcat、GlassFish、IBM WebSphere 等。
那么什么是 JAVA 容器呢?
以 Java EE 的子集 Servlet 為例,我們現(xiàn)在用 Servlet 可以相對輕松的寫出一個動態(tài) Web 站點。
JDK8與JDK1.8的區(qū)別
?JDK8或者JDK1.8是由于自從JDK1.5/JDK5命名方式改變后遺留的新舊命令方式問題。所以 Java 8, JDK8或者JDK1.8也是同一個東西。
JDK、JRE、ServerJRE
Software Developers: JDK (Java SE Development Kit). For Java Developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications.
? Administrators running applications on a server: Server JRE (Server Java Runtime Environment) For deploying Java applications on servers. Includes tools for JVM monitoring and tools commonly required for server applications, but does not include browser integration (the Java plug-in), auto-update, nor an installer.
? End user running Java on a desktop: JRE: (Java Runtime Environment). Covers most end-users needs. Contains everything required to run Java applications on your system.
?JDK
JDK(Java Development Kit)又稱J2SDK(Java2 Software Development Kit),是Java開發(fā)工具包,它提供了Java的開發(fā)環(huán)境(提供了編譯器javac等工具,用于將java文件編譯為class文件)和運行環(huán)境(提供了JVM和Runtime輔助包,用于解析class文件使其得到運行)。如果你下載并安裝了JDK,那么你不僅可以開發(fā)Java程序,也同時擁有了運 行Java程序的平臺。JDK是整個Java的核心,包括一堆Java工具tools.jar和Java標(biāo)準(zhǔn)類庫。
JRE
JRE(Java Runtime Enviroment)是Java的運行環(huán)境。面向Java程序的使用者,而不是開發(fā)者。JRE是運行Java程序所必須環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實現(xiàn)及 Java核心類庫。它包括Java虛擬機、Java平臺核心類和支持文件。它不包含開發(fā)工具(編譯器、調(diào)試器等)。
Server JRE
Server JRE是專為服務(wù)器端程序量身打造的, 只包含JRE/JDK中最常用的那部分功能.。為了做到簡單,Server JRE不使用安裝包, 而是一個綠色版的壓縮文件。
?
從使用情況來看,服務(wù)器部署使用server jre比較好,精簡了javafx一些圖形界面才用到的東西
Server JRE 包括 JVM 監(jiān)測工具和服務(wù)器應(yīng)用程序所需的常用的工具。JRE包括瀏覽器集成 Java 插件。文章來源:http://www.zghlxwxcb.cn/news/detail-469558.html
老版本的JDK包括了JRE,但JDK8之后的版本不再包括JRE. 從JDK 6 到 JDK 10: JRE, server JRE 可以單獨下載, 從JDK11 開始不再單獨下載文章來源地址http://www.zghlxwxcb.cn/news/detail-469558.html
到了這里,關(guān)于java,jdk 分不清,是否免費,怎么選擇合適的版本的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!