JAVA_HOME必须配置,因为Maven、Tomcat等工具依赖它定位JDK根目录;它不用于java命令(由PATH控制),而是供其他Java工具“认爹”,须指向JDK安装根目录(如C:\Program Files\Java\jdk-17.0.1),不可指向bin或JRE。

Java环境变量为什么必须配 JAVA_HOME
不配 JAVA_HOME,很多工具(比如 Maven、Tomcat、IDEA)会找不到 JDK 根目录,直接报错 The JAVA_HOME environment variable is not defined correctly。它不是给 java 命令本身用的(那个靠 PATH),而是给其他 Java 工具“认爹”用的——告诉它们“JDK 装在哪”。
必须指向 JDK 安装根目录,比如 C:\Program Files\Java\jdk-17.0.1,不能指向 bin 子目录,也不能指向 JRE。
PATH 里只加 %JAVA_HOME%\bin,别硬写绝对路径
Windows 下改 PATH 时,直接写死路径(比如 C:\Program Files\Java\jdk-17.0.1\bin)看似能用,但换 JDK 版本就得手动改所有地方;而用 %JAVA_HOME%\bin 是动态引用,只要更新 JAVA_HOME 就自动生效。
注意:PATH 中不要重复添加多个 JDK 的 bin,否则 java -version 可能输出旧版本——系统从左到右匹配第一个找到的 java.exe。
检查是否生效:用命令行分两步验证
改完环境变量后,**必须新开一个命令提示符窗口**(旧窗口不会自动刷新环境变量)。然后执行:
echo %JAVA_HOME% java -version javac -version
如果 echo %JAVA_HOME% 输出为空,说明 JAVA_HOME 没设对或没保存;
如果 java -version 成功但 javac -version 报 'javac' is not recognized,基本是 PATH 没包含 %JAVA_HOME%\bin 或拼写错误(比如漏了 \bin)。
立即学习“Java免费学习笔记(深入)”;
常见踩坑点:空格、中文路径、权限和大小写
Windows 路径含空格(如 Program Files)没问题,%JAVA_HOME% 引用时自动处理;但如果你手动在 PATH 里写了带空格的绝对路径,又没加引号,就可能失效。
JDK 别装在中文路径下(比如 D:\开发工具\jdk),部分老脚本会解析失败。
修改系统环境变量需要管理员权限,但普通用户变量也行——只是影响范围仅限当前用户。JAVA_HOME 和 PATH 名字必须全大写,Windows 不区分大小写,但某些工具(如 Gradle)严格校验变量名。










