运行 java -version 查看JDK版本,再执行 ls $JAVA_HOME/src.zip 检查源码包是否存在;若提示“No such file”,说明未自带src.zip,需从对应OpenJDK官网下载完整包并手动复制src.zip至$JAVA_HOME目录。

如何确认已安装JDK的版本并判断是否自带src.zip
Java 8 及以后的官方 JDK(如 Oracle JDK、OpenJDK)在标准安装包中通常已包含 src.zip,但部分精简版或通过包管理器安装的 JDK(如 Ubuntu 的 openjdk-17-jdk-headless)会默认不带源码。运行以下命令可快速验证:
java -version ls $JAVA_HOME/src.zip
若提示 “No such file”,说明源码未就位;$JAVA_HOME 需指向实际 JDK 根目录(例如 /usr/lib/jvm/java-17-openjdk-amd64 或 C:\Program Files\Java\jdk-17.0.2)。
手动下载并配置 src.zip 的通用步骤
若 src.zip 缺失,最稳妥的方式是去对应 OpenJDK 发行版官网下载完整构建包(非 headless 版)。例如 OpenJDK 17 的完整包一般包含 src.zip 和 docs/api 目录。
- 访问 Eclipse Temurin 或 jdk.java.net,选择与你当前
java -version输出完全匹配的版本(注意 build number) - 下载
jdk-*.tar.gz(Linux/macOS)或jdk-*.zip(Windows),解压后找到根目录下的src.zip - 将其复制到你当前
$JAVA_HOME目录下(与bin/、lib/同级),确保路径为$JAVA_HOME/src.zip - IDE(如 IntelliJ IDEA 或 VS Code + Extension)会在下次启动时自动识别——无需额外配置路径
文档(JavaDoc)的获取与本地挂载方式
官方 JDK 不再默认附带完整离线文档(docs/api/),需单独下载。JDK 11+ 的文档以 HTML 形式发布,体积较大(约 100MB),但加载快、无网络依赖。
立即学习“Java免费学习笔记(深入)”;
- 从同一发行版页面下载
jdk-*-docs-all.zip(Temurin)或openjdk-*-docs.zip(jdk.java.net) - 解压后得到
docs/api/目录,记下其绝对路径(例如/opt/jdk-17.0.2/docs/api) - 在 IDE 中:IntelliJ → File → Project Structure → SDKs → 选中 JDK → 右侧 “Documentation path” 点 + 号添加该路径;VS Code 使用
Extension Pack for Java时,可在设置中配置java.configuration.runtimes的docUrl字段 - 命令行下无法直接“挂载”文档,但
javadoc命令本身需要源码或 classpath 才能生成,src.zip是前提
常见 IDE 中源码/文档失效的典型原因
即使 src.zip 和文档路径都正确,仍可能看不到跳转或注释,问题往往出在缓存或绑定层级:
- IntelliJ:项目使用了 Maven/Gradle,但
pom.xml或build.gradle中声明了source或javadocclassifier 依赖(如org.springframework:spring-core:5.3.31:sources),会覆盖 JDK 自带源码——检查 External Libraries 下rt.jar或classes.jar是否显示 “Sources not found” - VS Code:启用
java.import.exclusions时可能误排除src.zip,建议清空该设置或设为[] - Mac 上通过 Homebrew 安装的
openjdk@17,src.zip实际位于$(brew --prefix openjdk@17)/libexec/openjdk.jdk/Contents/Home/src.zip,而非$JAVA_HOME——需软链或重设JAVA_HOME - Windows 用户若用
set JAVA_HOME=...临时设置,重启终端后失效,应改系统环境变量
最易被忽略的一点:JDK 源码只对 java.* 和 javax.*(已迁移至 jakarta.*)包生效;第三方库(如 Guava、Jackson)的源码必须单独下载或由构建工具拉取,不能靠 src.zip 覆盖。










