首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JDK 與 Java SE/EE/ME 版本關係徹底釐清

     編輯:程式設計綜合問答

核心概念區分

術語含義關係
JDK (Java Development Kit)開發工具包:javac、java、jar、javadoc、jdb、JConsole 等 + JRE開發者安裝的實體軟體包
JRE (Java Runtime Environment)運行環境:JVM + 核心類庫 (rt.jar) + 啟動器JDK 內含;用戶端僅需 JRE
Java SE (Standard Edition)標準版規範:核心 API (java.*, javax.*) + JVM 規範JDK/JRE 實現了 SE 規範
Java EE (Enterprise Edition, 現 Jakarta EE)企業版規範:Servlet、JPA、JTA、CDI、Bean Validation 等擴展 API在 SE 基礎上擴展;應用伺服器實現
Java ME (Micro Edition)嵌入式版規範:精簡 VM + 子集 API (javax.microedition.*)針對資源受限設備;現多為 Android/嵌入式 Linux 替代

版本對應時間軸

JDK 版本Java SE 版本Java EE 版本關鍵特性
JDK 1.0 - 1.4J2SE 1.0 - 1.4J2EE 1.2 - 1.4早期發展期
JDK 5 (1.5)Java SE 5Java EE 5泛型、註解、枚舉、自動裝箱
JDK 6Java SE 6Java EE 6Scripting、JDBC 4.0、JAX-WS
JDK 7Java SE 7Java EE 7try-with-resources、NIO.2、invokedynamic
JDK 8 (LTS)Java SE 8Java EE 8Lambda、Stream、新日期時間、Nashorn
JDK 9Java SE 9—模組系統、JShell、HTTP/2 Client
JDK 11 (LTS)Java SE 11— (Jakarta EE 8 獨立發布)var、HTTP Client 標準化、飛行記錄器
JDK 17 (LTS)Java SE 17Jakarta EE 9/10封閉類、記錄類、模式匹配、向量 API
JDK 21 (LTS)Java SE 21Jakarta EE 10虛擬線程、記錄模式、字符串模板、結構化並發

關鍵澄清

  • JDK 不「帶有」EE/ME:JDK 只實現 SE 規範。EE API 需額外引入實現庫(如 jakarta.servlet:jakarta.servlet-api)並在應用伺服器(Tomcat、WildFly、GlassFish)運行。ME 同理。
  • 版本號統一:JDK 5 起版本號與 SE 版本號對齊(JDK 8 ≡ Java SE 8)。EE 獨立版本號(EE 8 對應 SE 8 技術棧)。
  • LTS 版本選擇:生產環境首選 JDK 8/11/17/21 (LTS),獲得長期安全更新。
  • OpenJDK vs Oracle JDK:構建源碼相同,Oracle JDK 提供商業支援與額外工具(Java Flight Recorder 早期版本),OpenJDK 免費開源,現為主流選擇。

開發者實操建議

  1. 安裝 JDK (LTS 版本) → 配置 JAVA_HOME、PATH。
  2. 專案用 Maven/Gradle 管理依賴,pom.xml 引入 EE API(scope=provided)。
  3. 本地開發用嵌入式伺服器,生產部署到獨立應用伺服器或容器化。
  4. 關注 Java 生命週期,規劃升級節奏。

理解 JDK/SE/EE/ME 定位與版本對應,是構建正確技術選型與避免依賴衝突的前提。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved