Java环境配置失败主因是JAVA_HOME设错或Path引用错误路径;需确保JAVA_HOME指向JDK根目录(不含\bin),Path中添加%JAVA_HOME%\bin,并在各工具中单独配置SDK路径。
Java 环境在 Windows 上配不成功,八成卡在 JAVA_HOME 没设对、或 Path 里引用了错误路径——不是版本号写错,就是多加了 \bin 后缀。
下载 JDK 时别选错版本(特别是 jdk-21+ 的 installer)
Oracle 官网现在默认提供 .exe 安装包(带 GUI 向导),它会自动注册注册表、但不自动配置环境变量;而 OpenJDK 社区版(如 Temurin、Eclipse Adoptium)仍以 .zip 为主,解压即用,更适合手动控制路径。如果你用的是 jdk-21 或更新版,注意:从 jdk-17 起,Windows 版本已不再自带 JRE,java -version 能运行不代表 javac 一定可用——得确认你下的是 JDK(含 javac.exe),不是仅含 java.exe 的 JRE。
- 推荐去 https://www.php.cn/link/e387385ebe0dbeefed3e8e9f3968aaba 下载
Temurin JDK(免安装 zip 包) - 避免使用
jdk-*.exe+ “为所有用户安装”选项,容易导致权限路径(如C:\Program Files\...)引发后续命令行权限问题 - 解压后路径别含中文、空格、特殊符号,例如
C:\dev\jdk-21.0.1是安全的,C:\My Tools\JDK 21会大概率让 Maven/Gradle 找不到javac
JAVA_HOME 必须指向 JDK 根目录,不能带 \bin
JAVA_HOME 是绝大多数构建工具(Maven、Gradle、IDEA、Tomcat)识别 JDK 的唯一依据。设错会导致“javac is not recognized”或构建时报“Unsupported class file major version”。关键点就一个:JAVA_HOME 的值是 JDK 解压后的最外层文件夹,不是里面的 bin 子目录。
- ✅ 正确:
C:\dev\jdk-21.0.1 - ❌ 错误:
C:\dev\jdk-21.0.1\bin(这是Path里该加的) - ❌ 错误:
C:\dev\jdk-21.0.1\jre(JDK 21+ 已无独立 jre 目录) - 设置后务必在新打开的 CMD 或 PowerShell 中验证:
echo %JAVA_HOME%(Windows CMD)或$env:JAVA_HOME(PowerShell)
Path 里只加 %JAVA_HOME%\bin,别重复添加绝对路径
很多教程让你直接把 C:\dev\jdk-21.0.1\bin 写死进 Path,这看似能跑通 java 和 javac,但一旦换 JDK 版本或迁移项目,所有硬编码路径都要手动改——而且容易和 JAVA_HOME 冲突,导致 mvn compile 用的 JDK 和 java -version 显示的不一致。