JAVA_HOME必须指向JDK根目录(含bin、lib、jre子目录),不可为JRE或bin路径;Windows配%JAVA_HOME%\bin到Path,macOS/Linux用/usr/libexec/java_home或固定路径配置,重启终端后用echo和javac -version验证。

JAVA_HOME 要指向 JDK 的根目录,不是 JRE,也不是 bin 目录。配错位置、指向了 JRE 或残留旧版本路径,是绝大多数“java 命令找不到”“Maven 报 JAVA_HOME 未设置”问题的根源。
先确认 JDK 安装位置
别靠猜或默认路径。打开终端(Windows 用 CMD/PowerShell,macOS/Linux 用 Terminal)执行:
-
Windows:运行
java -XshowSettings:properties -version 2>&1 | findstr "java.home",输出类似java.home = C:\Program Files\Java\jdk-17.0.2—— 这就是你要的 JDK 根目录(去掉末尾\jre若有) -
macOS:运行
/usr/libexec/java_home -v 17(把 17 换成你要的版本),直接返回标准 JDK 路径,如/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home -
Linux:运行
update-alternatives --list java,取结果中类似/usr/lib/jvm/java-17-openjdk-amd64/bin/java的路径,去掉/bin/java,得到/usr/lib/jvm/java-17-openjdk-amd64
Windows 系统配置步骤
右键“此电脑” → “属性” → “高级系统设置” → “环境变量” → 在“系统变量”里操作:
在调试 Java 后端 API 故障时使用此技能,尤其适用于以下任务:分析日志、跨 Controller、Service 和 Mapper 层追踪请求、定位异常根因、检查 SQL 执行或参数流转,以及生成简洁的诊断结论与修复方案。
- 点“新建”:变量名填 JAVA_HOME,变量值填上一步确认的 JDK 根路径(例如
C:\Program Files\Java\jdk-17.0.2) - 找到已有变量 Path,点“编辑” → “新建” → 添加
%JAVA_HOME%\bin - 关闭所有已打开的命令行窗口,重新打开 CMD,运行
echo %JAVA_HOME%和java -version验证
macOS / Linux 系统配置步骤
确认你当前 shell 类型(zsh 是 macOS 默认,bash 常见于 Linux),编辑对应配置文件:
立即学习“Java免费学习笔记(深入)”;
- macOS(zsh):运行
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc,再运行echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc - Linux(bash):运行
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc,再运行echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc - 最后执行
source ~/.zshrc(或source ~/.bashrc)使配置立即生效,再用echo $JAVA_HOME和javac -version验证
关键注意事项
这些细节常被忽略,却直接决定配置是否真正生效:
-
JAVA_HOME 必须指向 JDK,不能是 JRE:JDK 包含
javac、javadoc等开发工具;JRE 只能运行程序,Maven/Gradle 会直接报错 -
路径中不要含中文或空格:若已安装在
C:\Program Files\...,建议复制路径时用双引号包裹,或重装到D:\jdk-17这类干净路径 -
不要重复添加 java.exe 所在路径到 Path:避免多个 Java 版本冲突;优先使用
%JAVA_HOME%\bin,删掉其他类似C:\...\jre\bin的条目 - CLASSPATH 不强制需要:JDK 5 以后默认包含当前目录和核心库,新手可暂不配置;除非项目明确要求,否则跳过更安全

















