java_home必须指向jdk根目录而非bin或java.exe,否则maven等工具启动失败;windows需在系统变量中新建java_home并配置path,linux/macos需编辑shell配置文件并source生效,验证时须用新终端检查路径一致性。

JAVA_HOME 必须指向 JDK 的根目录,不能是 bin 文件夹,更不能是 java.exe 文件本身。配错会导致 Maven、Tomcat、IDE 等工具启动失败。
Windows 系统配置步骤
在「系统属性 → 高级 → 环境变量」中操作:
- 在【系统变量】里点击「新建」,变量名填 JAVA_HOME(全大写,一个字母不能错),变量值填 JDK 安装根路径,例如:
C:\Program Files\Java\jdk-17.0.2(不含 \bin,也不含中文、空格或特殊符号) - 找到系统变量中的 Path,双击编辑 → 「新建」两行:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
建议把 %JAVA_HOME%\bin 移到 Path 列表最上方,避免旧版本干扰 - 删掉所有含 javapath 的 Path 条目(如
C:\ProgramData\Oracle\Java\javapath),它们是 Oracle 自动加的代理路径,会破坏 JAVA_HOME 校验
Linux / macOS 系统配置步骤
编辑 shell 配置文件(如 ~/.zshrc 或 ~/.bashrc):
- 添加两行(路径替换成你实际的 JDK 根目录):
export JAVA_HOME=/usr/lib/jvm/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH - 保存后执行:
source ~/.zshrc(或对应配置文件) - 确认
java -version和which java输出一致,再用readlink -f $(which java)反推根目录,验证 JAVA_HOME 是否正确
验证是否生效
必须打开全新的命令行窗口(旧窗口不会刷新环境变量):
-
echo %JAVA_HOME%(Windows)或echo $JAVA_HOME(Linux/macOS)→ 应显示你设置的根路径,结尾不带斜杠、不带 bin、不带 java.exe -
where java(Windows)或which java(Linux/macOS)→ 返回路径应为%JAVA_HOME%\bin\java.exe或$JAVA_HOME/bin/java -
java -version和javac -version都能正常输出 → 说明 PATH 也已正确关联
常见错误与避坑提醒
- ❌ 把 JAVA_HOME 设成
C:\...\jdk-17\bin或.../java→ Maven 会报 “invalid directory” - ❌ 路径含中文、空格、括号(如
Program Files (x86))→ 编译或运行时可能乱码、找不到类 - ❌ 修改后没关掉旧 CMD/PowerShell → 验证永远失败
- ❌ 同时存在多个 JDK 且 JAVA_HOME 与
java -version不一致 → 工具行为不可预测
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











