在 Eclipse 中閱讀 JDK 核心類源碼(如 `String`、`HashMap`、`Thread`)是深入理解 Java 原理的必備技能。本文提供圖文級步驟,將 JRE 系統庫 `rt.jar` 關聯到 JDK 安裝目錄下的 `src.zip`,實現 F3 跳轉、懸停提示、調試斷點進入源碼。
一、 前置條件
- 已安裝 **JDK**(非 JRE),路徑如 `D:\Java\jdk-17`
- JDK 目錄下存在 `src.zip`(含 `java.lang`、`java.util` 等包源碼)
- Eclipse 已配置該 JRE/JDK 作為運行環境
二、 逐步配置步驟
- 打開 Eclipse → 菜單欄 Window → Preferences (Mac: Eclipse → Preferences)
- 左側樹展開:Java → Installed JREs
- 右側列表中選中當前使用的 JRE/JDK(勾選項),點擊右側 Edit... 按鈕
- 在「Edit JRE」對話框中,選中 `rt.jar` 行(通常排第一),點擊右側 Source Attachment... 按鈕
- 在彈出的「Source Attachment Configuration」對話框:
- 選擇 External location → External File...
- 瀏覽選中 JDK 目錄下的 `src.zip`**(如 `D:\Java\jdk-17\src.zip`)
- 點擊 OK 關閉
- 依次點擊 Finish → Apply and Close 保存設置
三、 驗證配置生效
- 新建 Java 項目,創建測試類:
public class Test {
public static void main(String[] args) {
String s = "Hello";
System.out.println(s.length()); // F3 跳轉 length()
}
}
- 將滑鼠懸停在 `length()` 上 → 顯示源碼 Javadoc
- 按住 Ctrl (Mac Cmd) 點擊 `length()` → **跳轉到 `String.java` 源碼**
- 在 `length()` 行打斷點,Debug 模式運行 → **變量面板顯示源碼行號,可單步進入 JDK 內部實現**
四、 常見問題與解決
| 問題 | 原因 | 解決 |
| 列表中無 `rt.jar` | 選中的是 JRE 而非 JDK | Installed JREs 中 Add → Standard VM → 指向 JDK 根目錄 |
| 找不到 `src.zip` | 安裝的是 JRE、或精簡版 JDK | 下載完整 JDK 安裝包(Oracle/OpenJDK/Temurin/Zulu) |
| 跳轉後顯示「Source not found」 | Source Attachment 路徑錯誤 | 重新編輯 JRE,確認 src.zip 絕對路徑正確 |
| 模塊化 JDK (9+) 模塊源碼缺失 | src.zip 僅含導出包,內部模塊源碼在 jmods | IDE 會自動解析 jmods,或下載 JDK 源碼完整包 |
五、 進階:Maven/Gradle 項目自動下載源碼
現代構建工具可自動下載依賴源碼,無需手動配置:
- Maven:`mvn dependency:sources` 或 IDEA/Eclipse 右鍵項目 → Maven → Download Sources
- Gradle:`gradle eclipse --refresh-dependencies` (Eclipse) / IDEA 自動下載
- IDEA:Settings → Build Tools → Maven → ☑ Download Sources automatically
六、 總結
關鍵路徑:Window → Preferences → Java → Installed JREs → Edit → 選中 rt.jar → Source Attachment → External File → src.zip。配置一次,終身受益。閱讀源碼是從「會用 API」進階為「懂原理」的最短路徑。