JRE vs JDK:Java 運行環境與開發工具包核心區別
核心關係圖
JDK (Java Development Kit)
├── 編譯器
├── 打包工具
├── 文檔生成器
├── 調試器
├── 反編譯器
├── 監控工具
└── JRE (Java Runtime Environment)
├── JVM (Java Virtual Machine)
└── 核心類庫
JRE (Java Runtime Environment)
- 定位:面向 Java 程序使用者
- 組成:JVM 標準實現 + 核心類庫
- 功能:只能運行已編譯的 .class 文件,不能編譯/調試
- 安裝位置:通常在
C:\Program Files\Java\jre*
- 比喻:如同 PC 的作業系統,Java 程序需 JRE 才能運行
JDK (Java Development Kit)
- 定位:面向 Java開發者
- 組成:JRE + 開發工具鏈
- 核心工具:
javac:編譯器
java:運行器
jar:打包工具
javadoc:文檔生成
jdb:調試器
javap:反編譯器
jconsole/jvisualvm:監控分析
- 包含完整 JRE:安裝 JDK 即包含 JRE,無需重複安裝
- 雙 JRE 情況:JDK 目錄下
jre/ 為精簡版,Program Files\Java\jre* 為完整版
JVM (Java Virtual Machine)
- 核心地位:Java 跨平台基石
- 工作流程:.java →
javac → .class → JVM 解釋/編譯 → 機器碼 → OS 執行
- 隔離作用:.class 不直接與 OS 交互,由 JVM 適配底層差異
- 主要實現:HotSpot (Oracle)、OpenJ9 (Eclipse)、GraalVM
關鍵差別總結表
| 維度 | JRE | JDK |
| 目標用戶 | 最終用戶 | 開發者 |
| 核心功能 | 運行 Java 程序 | 開發、編譯、調試、打包、運行 |
| 包含關係 | JVM + 類庫 | JRE + 開發工具 |
| 體積 | 較小 | 較大 |
| 安裝必要性 | 僅運行需安裝 | 開發必裝(含 JRE) |
實際建議
- 生產環境部署:僅安裝 JRE(或使用
jlink 定製精簡運行時)
- 開發機器:必裝 JDK
- 版本選擇:長期支援版(LTS:8, 11, 17, 21)
- 環境變數:配置
JAVA_HOME 指向 JDK 根目錄,PATH 添加 %JAVA_HOME%\bin