最快方式是win+r输入sysdm.cpl回车打开系统属性,再点高级选项卡中的环境变量;应优先配置系统变量而非用户变量,path中填%java_home%\bin并确保java_home指向jdk根目录且无空格中文,修改后需重启终端并用echo和where命令验证。

Windows 11里怎么快速打开“系统属性”→“环境变量”界面
直接按 Win + R,输入 sysdm.cpl 回车,就能一步跳转到「系统属性」窗口,点击「高级」选项卡里的「环境变量」按钮即可。这是最稳、最快、不依赖鼠标导航的方式,比右键“此电脑”→“属性”→“高级系统设置”少点3次。
为什么不能只改“用户变量”里的Path
如果你只在「用户变量」中添加了 %JAVA_HOME%\bin,而系统里装过旧版 Java(比如 JDK 8 或自带的 JRE),java -version 很可能仍显示旧版本——因为 Windows 会按 Path 列表顺序从上到下找第一个匹配的 java.exe,而系统变量里的旧路径往往排在前面。
- 推荐统一用「系统变量」配置
JAVA_HOME和Path,确保所有终端(CMD、PowerShell、IDE 启动的终端)行为一致 - 如果必须用用户变量(如公司电脑无管理员权限),务必把你的 JDK
bin路径用「上移」拖到 Path 列表最顶部 - 检查是否有多余的 Java 相关路径(如
C:\Program Files (x86)\Common Files\Oracle\Java\javapath),它常是旧版 Java 自动注入的,建议删掉
PATH 中填 %JAVA_HOME%\bin 还是绝对路径
填 %JAVA_HOME%\bin 更可靠。一旦你升级 JDK(比如从 jdk-17.0.11 换成 jdk-17.0.12),只需改 JAVA_HOME 的值,不用碰 Path ——否则漏改一处,javac 就会失效。
-
JAVA_HOME值必须是 JDK 根目录,不含\bin(例如D:\Develop\Java\jdk-17.0.11) - 确保
JAVA_HOME路径里没有中文、空格或括号;C:\Program Files\Java\...这类带空格的路径容易导致 Maven/Tomcat 启动失败 - 设完后别忘了重启所有已打开的 CMD/PowerShell 窗口,环境变量不会热更新
验证时 java -version 正常但 javac -version 报错
这说明 Path 指向的是 JRE 而非 JDK,或者 %JAVA_HOME%\bin 根本没生效。JDK 的 javac.exe 只存在于 jdk-x.x.x\bin\ 下,JRE 的 bin 目录里没有它。
- 先运行
echo %JAVA_HOME%,确认输出是你预期的 JDK 根路径 - 再运行
where java和where javac,看两个命令返回的路径是否都落在同一个 JDK 的bin目录下 - 如果
where javac无输出,八成是Path里漏加了%JAVA_HOME%\bin,或拼写错误(比如写成%JAVA_HOMR%\bin)
where 和 echo 多敲两行,比反复重装 JDK 省三小时。











