You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除JDK版本后JHipster无法构建,mvnw.sh提示JAVA_HOME配置错误

Java环境配置报错修复指南

前置排查

首先确认你配置的JAVA_HOME路径真实有效,执行以下命令:

ls /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java

如果没有返回文件存在的提示,说明你填写的JDK路径错误,需要替换为实际的OpenJDK 11安装路径,再执行后续操作。

核心问题原因

你遇到的报错本质是**~/.bashrc 配置的环境变量没有被 mvnw.sh 运行时的 shell 环境加载**:

  • ~/.bashrc 是Ubuntu下交互式非登录shell的专属配置文件,仅在手动打开终端进入交互式命令行时自动加载,直接执行脚本的非交互式shell默认不会读取该文件的配置
  • IntelliJ启动正常是因为IDE会自动读取用户环境变量配置,也支持项目内单独指定JDK路径,和终端运行脚本的环境相互独立
  • 终端直接执行java -version正常是因为当前交互式终端已经加载了~/.bashrc的配置,但执行脚本时会开启独立的新shell环境,默认不会继承该环境变量

修复方案

你可以任选以下一种方式解决:

方案1:全局配置Java环境变量(永久生效,所有场景适用)

把JAVA_HOME配置写入/etc/profile.d目录下的独立配置文件,所有用户、所有类型的shell都会加载该配置:

  1. 新建Java环境配置文件:
sudo tee /etc/profile.d/java.sh << 'EOF'
# SETUP JAVA HOME
export JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64"
export PATH=$PATH:$JAVA_HOME/bin
EOF
  1. 给文件添加执行权限:
sudo chmod +x /etc/profile.d/java.sh
  1. 重载配置让当前终端立即生效:
source /etc/profile.d/java.sh

方案2:当前用户永久生效

Ubuntu的登录shell会读取~/.profile,将配置写入该文件可覆盖更多使用场景:

  1. 编辑~/.profile文件,在末尾添加你的JAVA_HOME配置,同时删除之前加在~/.bashrc里的对应配置,避免重复
  2. 重载配置:
source ~/.profile

方案3:临时生效

如果不想修改全局配置,每次运行mvnw.sh时直接指定环境变量即可:

JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64" ./mvnw.sh

验证方法

配置完成后执行以下命令验证,输出你配置的JDK路径即说明正常:

echo $JAVA_HOME

再次运行mvnw.sh即可正常执行。

内容的提问来源于stack exchange,提问作者Marc Philippe Beaujean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:45:04