JDK 安装目录下需存在匹配版本的 src.zip,若无则需手动下载;在 Eclipse 的 Installed JREs 中为 JRE 关联该 src.zip 即可全局启用标准库源码跳转,Java 9+ 无需逐模块配置。

确认 JDK 安装目录下有 src.zip
OpenJDK 发行版(如 Adoptium、Eclipse Temurin、Amazon Corretto)通常自带 src.zip,但不是所有打包方式都默认包含。先检查你的 JDK 根目录:$JAVA_HOME/src.zip 是否存在。常见路径示例:
- Linux/macOS:
/usr/lib/jvm/temurin-17-jdk-amd64/src.zip - Windows:
C:\Program Files\Eclipse Adoptium\jdk-17.0.2+8\src.zip
若不存在,需手动下载对应版本的 OpenJDK 源码包(例如从 Adoptium 网站 下载 “Source code” 选项),解压后确保得到一个完整的 src.zip —— 不能是空 zip 或仅含部分子目录。
在 Eclipse 中为 Installed JRE 关联 src.zip
这是最稳定、全局生效的方式,适用于所有使用该 JRE 的项目。
- 打开
Window → Preferences(macOS 是Eclipse → Preferences) - 进入
Java → Installed JREs,选中你正在用的 OpenJDK 条目(如jdk-17.0.2+8),点击Edit… - 在
JRE system libraries列表中,展开并选中rt.jar(Java 8)或java.base等核心模块(Java 9+)—— 实际上,只要选中任意一个系统 jar,再点Source Attachment,Eclipse 就会把src.zip绑定到整个 JRE - 点击右侧
Source Attachment按钮 →External File→ 浏览并选中src.zip - 点
OK → Finish → Apply and Close
⚠️ 注意:Java 9+ 模块化后,rt.jar 已被移除,但 Eclipse 仍通过识别 src.zip 中的模块结构来映射源码;无需为每个模块单独设置,一次指定即可覆盖全部标准库。
验证是否成功 & 常见失败现象
成功关联后,按住 Ctrl(macOS 是 Cmd)点击 String、ArrayList、Files 等任意标准类,应直接跳转到带完整注释的 Java 源文件,而不是反编译的 /* compiled code */。
如果仍提示 Source not found,排查以下几点:
-
src.zip路径含中文或空格?Eclipse 有时解析失败,建议移到纯英文路径下重试 - 你调试时断点停在了被 JVM 内联的方法(如
Objects.requireNonNull)?这类方法即使有源码也无法单步进入,属于 JVM 优化行为,不是配置问题 - 项目用了 Maven,且
pom.xml中显式声明了<java.version>17</java.version>,但 Eclipse 的 JRE 设置仍是旧版本?务必检查Project → Properties → Java Build Path → Libraries中的 JRE System Library 是否与 Preferences 里设为 default 的一致
临时附加源码(仅限调试中断时)
当调试突然停在某个标准类、弹出 Source not found 页面时,可快速补救:
- 点击弹窗中的
Attach Source… - 选
External File→ 指向你的src.zip
⚠️ 这种方式只对当前调试会话有效,下次启动调试仍会丢失。它适合临时查问题,但不能替代上面的全局配置。另外,如果你反复遇到“找不到源码”,大概率是 src.zip 路径不对,或 Eclipse 缓存了旧 JRE 配置——可尝试重启 Eclipse 或执行 Project → Clean…。
真正麻烦的不是找 src.zip,而是确认它和当前运行的 OpenJDK 版本完全匹配;用 JDK 17 编译却配了 JDK 11 的 src.zip,会导致部分类找不到,或者跳转到错误的源码行号。


















