
Maven 启动失败提示 “JAVA_HOME 未正确定义”,根本原因是该变量被错误指向了 java 可执行文件路径,而非 JDK 安装根目录;正确设置后即可正常调用 mvn 命令。
maven 启动失败提示 “java_home 未正确定义”,根本原因是该变量被错误指向了 `java` 可执行文件路径,而非 jdk 安装根目录;正确设置后即可正常调用 mvn 命令。
Maven 依赖 JAVA_HOME 环境变量来定位 JDK 的安装位置,但该变量必须指向 JDK 的根目录(即包含 bin/、lib/、jre/ 等子目录的父路径),而非 java 命令本身的路径(如 /usr/lib/jvm/default-runtime/bin/java)。您当前的配置:
echo $JAVA_HOME # 输出:/usr/lib/jvm/default-runtime/bin/java ← ❌ 错误:指向可执行文件
这会导致 Maven 在启动时无法找到 lib/tools.jar(或现代 JDK 中对应的模块路径)及配套工具链,从而报错退出。
✅ 正确做法是将 JAVA_HOME 设置为 JDK 安装根目录(即 bin 目录的上级):
export JAVA_HOME=/usr/lib/jvm/default-runtime
为使配置持久生效,请将其写入 shell 配置文件(如 ~/.bashrc、~/.zshrc 或 /etc/environment):
# 编辑 ~/.bashrc(适用于 Bash 用户) echo 'export JAVA_HOME=/usr/lib/jvm/default-runtime' >> ~/.bashrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc
验证配置是否生效:
echo $JAVA_HOME # 应输出:/usr/lib/jvm/default-runtime java -version # 确认 Java 版本可用 mvn -v # 应成功显示 Maven 版本及 JDK 信息
⚠️ 注意事项:
- 不要将 JAVA_HOME 指向 java、javac 等二进制文件,只指向 JDK 根目录;
- 修改后务必重新加载 shell 配置或新开终端;
- 若系统存在多个 JDK(如通过 update-alternatives 管理),请确保 JAVA_HOME 与 java -version 实际使用的 JDK 一致;
- Maven 3.9+ 支持 JDK 17+,但需注意部分插件可能对 JDK 19 有兼容性要求,建议优先选用 LTS 版本(如 JDK 17)用于生产环境。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











