首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 易混淆術語完全解析:J2EE、J2SE、JDK、JRE 等關鍵差異

     編輯:Java 相關知識

前言

Java 生態系統術語繁多,初學者極易混淆 J2EE、J2SE、JDK、JRE、JSP、Tomcat 等概念。本文針對 8 個核心術語進行精準定義、組件拆解與關係圖解,助你建立清晰的知識地圖。

術語對照總表

術語全稱定位核心內容
J2EEJava 2 Platform, Enterprise Edition企業級開發平台規範EJB, JSP, Servlet, JMS, JTA, JNDI, JavaMail, JDBC 等 13 項技術規範
J2SEJava 2 Platform, Standard Edition標準版平台基礎JDK, JRE, 核心類庫 (java.lang, java.util, java.io 等)
JDKJava Development Kit開發工具包javac, java, jar, javadoc, jdb + JRE 完整內容
JREJava Runtime Environment執行環境JVM + 核心類庫 (rt.jar) + 支援檔案
JSPJavaServer Pages動態網頁技術HTML 中嵌入 Java 程式碼,編譯為 Servlet 執行
JSWDKJavaServer Web Development KitJSP/Servlet 開發包支援 JSP 1.0 + Servlet API 2.1,整合 Web 伺服器
TomcatApache TomcatServlet/JSP 容器Sun 技術支援,Jakarta 專案,含 JSWDK 全功能並增強
JSDKJava Software Development Kit舊稱/廣義 SDK早期稱呼,易混淆為 Servlet 專用,實為 JDK 同義詞

核心關係圖解

Java Platform
├── J2SE (標準版)
│   ├── JDK (開發工具包) ◄── 開發者必裝
│   │   ├── 開發工具: javac, java, jar, javadoc...
│   │   └── JRE (執行環境) ◄── 使用者端只需裝這個
│   │       ├── JVM (虛擬機)
│   │       ├── 核心類庫 (rt.jar)
│   │       └── 支援檔案
│   └── 核心 API 規範 (java.*, javax.*)
│
├── J2EE (企業版) ◄── 建構在 J2SE 之上
│   ├── 元件規範: EJB, Servlet, JSP, JMS...
│   ├── 服務規範: JTA, JNDI, JavaMail...
│   └── 需相容實作: WebLogic, WebSphere, JBoss, Tomcat(僅Web層)...
│
└── J2ME (微縮版) ◄── 嵌入式/行動裝置 (KVM)

重點辨析

1. JDK vs JRE

  • JDK = JRE + 開發工具
  • 開發階段:需 JDK (編譯、除錯、打包)
  • 部署階段:僅需 JRE (執行 .class/.jar)
  • 目錄結構:JDK/lib 供工具用,JRE/lib 供 JVM 執行期用

2. J2EE vs J2SE

  • J2SE 是基礎,J2EE 是擴充規範集合
  • J2EE 不是單一軟體,而是「一堆規範的集合」
  • 執行 J2EE 應用需「應用伺服器」(App Server):WebLogic, WebSphere, JBoss, GlassFish...
  • Tomcat 只實作 Servlet/JSP 規範,非完整 J2EE 容器 (無 EJB 容器)

3. Tomcat 定位釐清

  • Servlet 容器 (Web Container) ≠ J2EE 應用伺服器
  • 功能:Servlet, JSP, JNDI, 資料庫連線池, 交易管理(有限)
  • 適用:中小型 Web 應用、微服務
  • 不支援:EJB, JMS, JavaMail 等企業級規範 (需額外整合)

4. JSP 運作機制

JSP 頁面 (.jsp)
    │
    ▼ 首次請求時
JSP 引擎 (Jasper)
    │
    ▼ 翻譯
Servlet 原始碼 (.java)
    │
    ▼ 編譯
Servlet 類別 (.class)
    │
    ▼ 執行
Servlet 實例 → service() 方法 → 產生 HTML 回應

後續請求直接執行已編譯的 Servlet 類別,效能極佳。

5. JSWDK vs Tomcat

  • JSWDK:Sun 早期參考實作,已停止更新
  • Tomcat:Apache Jakarta 專案,社群維護,功能更完整、效能更好、生態更豐富
  • 現代開發直接使用 Tomcat、Jetty、Undertow 等成熟容器

版本演進補充 (現代術語)

舊稱現代稱呼 (Java 5+)
J2SEJava SE (Java Platform, Standard Edition)
J2EEJava EE → Jakarta EE (Java 9+ 移出 JDK, Eclipse 基金會維護)
J2MEJava ME

實務選型建議

  1. 學習階段:安裝 JDK (含 JRE),IDE 設定 JDK 路徑
  2. Web 專案:Tomcat / Jetty (Servlet/JSP) 或 Spring Boot 內嵌容器
  3. 企業級系統:完整 Jakarta EE 相容伺服器 (WildFly, Liberty, WebLogic...)
  4. 微服務/雲原生:Spring Boot + 內嵌 Tomcat/Undertow, GraalVM 原生映像

總結

搞清「平台規範 (J2EE/J2SE)」、「工具包 (JDK)」、「執行環境 (JRE)」、「具體技術 (JSP/Servlet)」、「容器實作」這五個層次,Java 生態術語就不再混淆。記住核心關係:JDK ⊃ JRE ⊃ JVM,J2EE ⊃ J2SE,App Server ⊃ Web Container (Tomcat)。

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