
Maven 启动失败提示 “JAVA_HOME 未正确定义”,根本原因是该环境变量指向了 java 可执行文件而非 JDK 根目录;正确做法是将其设为 JDK 安装路径(如 /usr/lib/jvm/default-runtime),而非 bin/java。
maven 启动失败提示 “java_home 未正确定义”,根本原因是该环境变量指向了 java 可执行文件而非 jdk 根目录;正确做法是将其设为 jdk 安装路径(如 `/usr/lib/jvm/default-runtime`),而非 `bin/java`。
Maven 依赖 JAVA_HOME 环境变量定位 JDK 的根目录(即包含 bin/、lib/、jre/ 等子目录的父路径),而非直接指向 java 命令本身。您当前的配置:
echo $JAVA_HOME # 输出:/usr/lib/jvm/default-runtime/bin/java ← ❌ 错误:这是可执行文件路径
这会导致 Maven 在启动时无法找到 lib/tools.jar(或 JDK 11+ 中对应的模块)及配套工具链,从而报错退出。
✅ 正确配置方式如下:
# 设置 JAVA_HOME 为 JDK 根目录(不含 bin/java) export JAVA_HOME=/usr/lib/jvm/default-runtime # 同时确保 PATH 包含 JDK 的 bin 目录(推荐追加,避免覆盖系统命令) export PATH=$JAVA_HOME/bin:$PATH # 验证配置 echo $JAVA_HOME # 应输出:/usr/lib/jvm/default-runtime java -version # 应正常显示 OpenJDK 19 版本信息 mvn -v # 应成功输出 Maven 版本及 Java 运行时信息
⚠️ 注意事项:
立即学习“Java免费学习笔记(深入)”;
- 不要在 JAVA_HOME 中包含 /bin/java —— 它必须是一个目录路径;
- 修改后需重新加载 Shell 配置(如 source ~/.bashrc 或 source ~/.zshrc),或新开终端生效;
- 若使用多版本 JDK(如通过 update-alternatives 或 SDKMAN! 管理),请确保 JAVA_HOME 指向当前 java -version 对应的实际安装路径(可通过 readlink -f $(which java) 辅助定位其根目录);
- Maven 3.9.0+ 要求 JDK 17+,您使用的 OpenJDK 19 完全兼容,无需降级。
完成配置后,Maven 即可正常解析 JDK 结构并启动构建流程。


















