java_home必须指向jdk真实根目录(如/usr/lib/jvm/java-11-openjdk-amd64),不可用/usr/bin/java等符号链接路径;需先用readlink -f $(which java)定位真实路径,再export设置并source生效,最后用echo $java_home和java -version验证。

Ubuntu 20.04 上 Java 工具链(如 Maven、Gradle、Tomcat)启动失败,或提示 “JAVA_HOME not set”,本质是系统找不到 JDK 根目录——必须把 JAVA_HOME 指向真实安装路径,而不是 /usr/bin/java 这类符号链接指向的外壳。
确认 JDK 已安装并定位真实路径
先验证 JDK 是否存在:运行 javac -version。若报错 command not found,说明未装开发包,需执行 sudo apt update && sudo apt install openjdk-11-jdk(Ubuntu 20.04 默认 LTS 版本)。
路径不能靠猜。执行 readlink -f $(which java),输出类似 /usr/lib/jvm/java-11-openjdk-amd64/bin/java —— 这才是真实路径,去掉末尾 /bin/java 就是 JAVA_HOME 目标值。
注意:不要用 which java 直接截取,它返回的是 /usr/bin/java,这是个符号链接,不是 JDK 安装根目录。
临时设置(当前终端立即生效)
在终端中直接执行以下两行(把路径替换成你上一步得到的结果):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
这一步操作起来很简单,直接粘贴回车就行。执行后立刻可用 java -version 和 javac -version 验证,但关闭终端就失效。
永久设置(推荐用户级配置)
Ubuntu 20.04 默认使用 bash,编辑当前用户配置文件:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
第一步:nano ~/.bashrc
第二步:翻到文件末尾,新增两行(路径务必与你查到的一致):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
第三步:按 Ctrl+O 保存 → Enter 确认文件名 → Ctrl+X 退出 nano 编辑器。
第四步:source ~/.bashrc —— 这步不可跳过,否则新变量不会加载进当前会话。
验证是否成功
依次运行这两条命令:
echo $JAVA_HOME → 应精确输出你设定的完整路径,例如 /usr/lib/jvm/java-11-openjdk-amd64
java -version → 显示版本信息,且不报 “command not found”
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










