Maven 启动失败提示 “JAVA_HOME 未正确定义”,根本原因是将 JAVA_HOME 指向了 java 可执行文件路径(如 /.../bin/java),而非 JDK 根目录;正确做法是将其设为 JDK 安装根路径(如 /usr/lib/jvm/default-runtime)。
maven 启动失败提示 “java_home 未正确定义”,根本原因是将 java_home 指向了 java 可执行文件路径(如 `/.../bin/java`),而非 jdk 根目录;正确做法是将其设为 jdk 安装根路径(如 `/usr/lib/jvm/default-runtime`)。
Maven 依赖 JAVA_HOME 环境变量定位 JDK 的核心组件(如 lib/rt.jar、jre/ 目录及编译器工具),因此该变量必须指向 JDK 的安装根目录(即包含 bin/、lib/、jre/ 等子目录的上级路径),而不能指向 java 或 javac 等可执行文件本身。
你当前的配置:
echo $JAVA_HOME # 输出:/usr/lib/jvm/default-runtime/bin/java ← ❌ 错误:这是可执行文件路径
这导致 Maven 在启动时无法找到 lib/tools.jar 或 jre/lib 等必需资源,从而报错。
✅ 正确配置方式如下:
-
确认 JDK 实际安装路径(推荐使用 readlink -f $(which java) 定位真实路径):
Java Maven Common下载Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
readlink -f $(which java) # 示例输出:/usr/lib/jvm/default-runtime/jre/bin/java # 则 JDK 根目录为:/usr/lib/jvm/default-runtime
-
设置 JAVA_HOME 为根目录(注意:不带 /bin/java):
export JAVA_HOME=/usr/lib/jvm/default-runtime
-
将配置持久化(避免每次重启终端失效):
- 编辑 shell 配置文件(如 ~/.bashrc、~/.zshrc 或 /etc/environment):
echo 'export JAVA_HOME=/usr/lib/jvm/default-runtime' >> ~/.zshrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc source ~/.zshrc
- 编辑 shell 配置文件(如 ~/.bashrc、~/.zshrc 或 /etc/environment):
-
验证配置是否生效:
echo $JAVA_HOME # 应输出:/usr/lib/jvm/default-runtime(无 bin/java 后缀) mvn -v # 应成功显示 Maven 版本及 Java 版本信息
⚠️ 注意事项:
- JAVA_HOME 路径末尾不要加斜杠(如 /usr/lib/jvm/default-runtime/ 可能引发部分工具兼容性问题);
- 修改后务必执行 source 重载配置,或新开终端;
- 若系统存在多个 JDK,确保 JAVA_HOME 与 java -version 输出的版本一致;
- Maven 3.9+ 支持 Java 17+,但需确认所用 Maven 版本与 JDK 19 兼容(推荐 Maven ≥ 3.8.6)。
完成上述配置后,mvn --version 将正常输出,所有 Maven 生命周期命令(如 mvn clean compile)均可可靠执行。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










