确认JDK已下载解压是配置Java环境的前提;需验证JDK目录存在、bin/java可执行、正确设置JAVA_HOME指向JDK根目录并添加$JAVA_HOME/bin到PATH,最后通过java/javac版本及JAVA_HOME值三重验证。

确认 JDK 是否已下载并解压
命令行配置 Java 环境的前提是本地已有 jdk-*.tar.gz(Linux/macOS)或 jdk-*.zip(Windows),且已解压到明确路径。常见错误是直接运行 java -version 报“command not found”,却没检查 JDK 文件是否存在。
- Linux/macOS:用
ls -d /path/to/jdk-*确认解压后目录(如/opt/jdk-17.0.1) - Windows:检查
C:\Program Files\Java\jdk-*或自定义路径,注意路径中不要含空格或中文(否则JAVA_HOME易失效) - 别跳过验证:进入解压目录执行
bin/java -version(Linux/macOS)或bin\java.exe -version(Windows),能输出版本即说明 JDK 本身可用
设置 JAVA_HOME 并追加到 PATH
JAVA_HOME 必须指向 JDK 根目录(不是 bin 子目录),PATH 则需包含 $JAVA_HOME/bin(Linux/macOS)或 %JAVA_HOME%\bin(Windows)。漏掉 bin 是最常导致 java 命令仍不可用的原因。
Linux/macOS(写入 ~/.bashrc 或 ~/.zshrc):
export JAVA_HOME=/opt/jdk-17.0.1 export PATH=$JAVA_HOME/bin:$PATH
Windows(命令行临时生效,或在「系统属性 → 高级 → 环境变量」中添加):
立即学习“Java免费学习笔记(深入)”;
set JAVA_HOME=C:\Program Files\Java\jdk-17.0.1 set PATH=%JAVA_HOME%\bin;%PATH%
- 修改配置文件后,必须执行
source ~/.zshrc(或source ~/.bashrc)重载,否则新终端才生效 - Windows 图形界面下,环境变量修改后需重启 CMD/PowerShell,或新开终端窗口
- 避免把
JAVA_HOME指向 JRE 目录(如jre1.8.0_301),否则javac会报“not found”
验证配置是否真正生效
仅运行 java -version 不够——它可能调用系统自带的 OpenJDK 或旧版本。必须同时验证三件事:
-
java -version:确认运行时版本 -
javac -version:确认编译器可用(区分 JRE 和 JDK) -
echo $JAVA_HOME(Linux/macOS)或echo %JAVA_HOME%(Windows):确认变量值无拼写错误、路径存在且可访问
若 javac 报错但 java 正常,基本可断定 JAVA_HOME 指向了 JRE 或路径末尾多写了 /bin(例如设成了 /opt/jdk-17.0.1/bin)。
多 JDK 共存时如何安全切换
开发中常需在 JDK 8/11/17 间切换,硬编码 JAVA_HOME 容易出错。推荐用符号链接做软跳转:
Linux/macOS 示例(假设 JDKs 全放在 /opt):
sudo rm /opt/java sudo ln -s /opt/jdk-11.0.18 /opt/java export JAVA_HOME=/opt/java
然后所有脚本统一引用 /opt/java,切换只需改一次链接。
- Windows 不支持原生符号链接,可用
mklink(需管理员权限),但更稳妥的做法是写个批处理脚本,按需 set 不同的JAVA_HOME - IDE(如 IntelliJ)通常不读系统
JAVA_HOME,需单独在项目设置里指定 SDK 路径,这点容易被忽略 - 某些 Linux 发行版(如 Ubuntu)自带
update-alternatives,可管理多个java实例,但对JAVA_HOME无影响,仍需手动设










