在 Eclipse 中调试时关联源代码路径,主要目的是让调试器能跳转到 JDK 或第三方库的源码内部(如 HashMap.put()),而非显示 “Source not found”。以下是通用且适用于当前 Eclipse 版本(2026 年)的操作方法:
一、为 JDK 关联源码
适用场景:调试时无法进入 String、ArrayList、HashMap 等 Java 核心类。
步骤:
打开 Window → Preferences(macOS 为 Eclipse → Preferences)。
导航至 Java → Installed JREs。
选中当前使用的 JRE(通常是 jdk-xx.x.x),点击 Edit。
在 JRE system libraries 列表中,选中 rt.jar(Java 8 及以下)或 java.base 等模块(Java 9+)。
点击右侧 Source Attachment... 按钮。
选择 External File 或 External Folder,定位到 JDK 安装目录下的 src.zip 文件(例如:C:\Program Files\Java\jdk-11.0.2\src.zip)。
点击 OK → Finish → Apply and Close。
验证是否成功:
在代码中按住 Ctrl 并点击任意 Java 核心类(如 System.out),若能打开带注释的源码,则配置成功 。
二、为第三方 JAR 包关联源码
适用场景:调试时需查看 Spring、Apache Commons 等外部库源码。
步骤:
右键项目 → Properties。
选择 Java Build Path → Libraries。
展开目标 JAR(如 spring-core-5.x.x.jar)。
选中 Source attachment,点击 Edit...。
指定源码位置:
若有 -sources.jar 文件,选择 External File 并指向该文件。
若为源码目录,选择 External Folder 并指向源码根目录 。
三、调试时直接附加源码(临时方案)
当调试中断点处提示 “Source not found” 时:
点击弹窗中的 Attach Source...。
选择 External File 或 External Folder,关联对应 src.zip 或源码目录 。
注意事项
Java 版本差异:
Java 8:使用 rt.jar,源码在 src.zip。
Java 9+:模块化结构(如 java.base),源码仍为 src.zip,但需为每个模块单独关联 。
源码完整性:部分 JDK(如 Oracle 提供的)src.zip 可能不完整;建议使用 OpenJDK 或确保下载完整源码包。
调试限制:即使关联了 src.zip,由于编译时优化(如内联、行号丢失),部分方法仍无法单步进入。此时可考虑反编译插件(如 JD-Eclipse)辅助查看 。