JRE 與 JDK 是 Java 生態兩大基石,混淆兩者會導致環境配置錯誤、部署體積膨脹。本文從組件構成、使用場景、版本演進三個維度徹底釐清。
| 維度 | JRE (Java Runtime Environment) | JDK (Java Development Kit) |
|---|---|---|
| 全稱 | Java Runtime Environment | Java Development Kit |
| 定位 | 運行時環境:給終端用戶運行 Java 程序 | 開發工具包:給開發者編寫、編譯、調試 Java 程序 |
| 核心組件 | JVM + 核心類庫 (rt.jar) + 啟動器 | JRE + javac + javadoc + jdb + jconsole + jvisualvm + 源碼 + Demo |
| 包含關系 | 獨立發布 | 包含完整 JRE |
| 典型體積 | ~50-80 MB | ~150-300 MB |
| 工具 | 用途 |
|---|---|
| javac | Java 源碼編譯器 (.java → .class) |
| javadoc | 生成 API 文檔 |
| jdb | 命令行調試器 |
| jconsole / jvisualvm | 圖形化監控、性能分析、堆轉儲 |
| jshell | REPL 交互式編程 (JDK 9+) |
| jlink / jpackage | 模組化運行時鏡像打包、原生安裝包生成 (JDK 9+) |
需要運行 Java 程序?
├─ 是 → 只安裝 JRE(生產環境、用戶端)
└─ 否 → 需要開發/編譯/調試?
├─ 是 → 安裝 JDK
└─ 否 → 不需要 Java 環境
注意:JDK 9+ 模組化後,jlink 可定製極小運行時鏡像(~30MB),替代傳統 JRE 部署。
# JDK 環境
export JAVA_HOME=/path/to/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
# 驗證
java -version # 顯示 JRE/JDK 版本
javac -version # 僅 JDK 有此命令