能正常运行,前提是java_home必须正确指向jdk 11根目录(非jre或bin子目录),且java -version与javac -version均显示11.x;maven启动时首先校验java_home,错误会导致“the java_home environment variable is not defined correctly”报错。

装好 JDK 11 后,Maven 能否正常运行,关键就卡在 JAVA_HOME 这个环境变量上——它不是可选项,是硬性前提。
JAVA_HOME 必须指向 JDK 11 根目录,不能是 JRE 或 bin
很多问题(比如 “mvn 不是内部命令” 或 “UnsupportedClassVersionError”)都源于这里设错了。正确路径示例:
- Windows:
C:\Program Files\Java\jdk-11.0.20(不是...\jdk-11.0.20\bin) - macOS/Linux:
/usr/lib/jvm/java-11-openjdk-amd64(用sudo update-alternatives --config java可确认真实路径)
设完后,在终端/命令行执行:echo %JAVA_HOME%(Windows)或 echo $JAVA_HOME(macOS/Linux)
输出必须是完整 JDK 目录,且 java -version 和 javac -version 都显示 11.x。
PATH 里只加 %JAVA_HOME%\bin,别重复加 jre\bin
Maven 依赖 java 和 javac 命令,而它们都在 %JAVA_HOME%\bin 下。常见错误包括:
- PATH 中同时写了
%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin—— 冲突风险高 - PATH 里还残留旧 JDK 的路径(如
C:\Program Files (x86)\Common Files\Oracle\Java\javapath)—— 删除它
验证方式:新开一个终端窗口,运行 where java(Windows)或 which java(macOS/Linux),结果应唯一指向 JDK 11 的 bin 目录。
Maven 启动时会检查 JAVA_HOME,失败直接报错
当你执行 mvn -v,Maven 第一步就是读取 JAVA_HOME。如果为空、路径不存在、或指向的是 JRE,会立刻中断并提示:
The JAVA_HOME environment variable is not defined correctlyThis environment variable is needed to run this program
此时不用查 Maven 配置,先回过头确认 JAVA_HOME 是否生效、是否指向正确的 JDK 11 安装目录。
多 JDK 环境下切换 JAVA_HOME 要手动改,不自动识别
如果你同时装了 JDK 8 和 JDK 11,系统不会自动选版本。必须:
- 设置两个变量:
JAVA_HOME_8和JAVA_HOME_11 - 再把
JAVA_HOME的值设为%JAVA_HOME_11%(Windows)或$JAVA_HOME_11(macOS/Linux) - 每次切换版本,只需修改
JAVA_HOME的值,然后新开终端
IDE(如 IDEA)也会读这个变量,所以改完后重启 IDE 才能生效。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











