概览
在 Linux/Ubuntu 中,Java 环境变量主要通过以下几个环境变量来控制:

JAVA_HOME: 指向 Java 安装目录的绝对路径,许多 Java 应用程序(如 Tomcat、Maven、IntelliJ IDEA)和构建工具需要这个变量来定位 JDK。PATH: 包含可执行文件的目录列表,系统会在这个列表中查找命令(如java,javac),我们需要将$JAVA_HOME/bin添加到PATH中,这样你就可以在终端的任何位置直接使用java命令。
第一步:安装 Java
在配置环境变量之前,你必须先安装 Java,在 Ubuntu 中,通常有两种选择:
安装 OpenJDK (推荐,免费且开源)
这是最常见和推荐的方式,OpenJDK 是 Java 平台的官方开源实现。
-
更新包列表
sudo apt update
-
安装 OpenJDK 根据你的需求选择版本,目前主流的是 JDK 11 和 JDK 17 (LTS)。
(图片来源网络,侵删)-
安装 JDK 17 (推荐,长期支持版本)
sudo apt install openjdk-17-jdk
-
安装 JDK 11 (另一个流行的 LTS 版本)
sudo apt install openjdk-11-jdk
-
安装 JDK 8 (旧版,LTS)
sudo apt install openjdk-8-jdk
-
安装完成后,你可以通过以下命令验证是否安装成功:

java -version javac -version
你会看到类似下面的输出,显示你安装的 Java 版本。
openjdk version "17.0.8" 2025-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-122.04, mixed mode, sharing)
第二步:查找 Java 安装路径
JAVA_HOME 必须指向 JDK 的安装目录,而不是 JRE,JDK 包含了开发工具(如 javac),而 JRE 只包含运行时环境。
使用 update-java-alternatives 命令可以轻松找到所有已安装的 Java 版本的路径:
sudo update-java-alternatives --list
输出会类似这样,显示了不同的 Java 版本及其对应的路径:
java-1.8.0-openjdk-amd64 /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-11-openjdk-amd64 /usr/lib/jvm/java-11-openjdk-amd64
java-17-openjdk-amd64 /usr/lib/jvm/java-17-openjdk-amd64
注意:你需要复制你想要使用的那个版本的路径,如果你使用 JDK 17,那么你的 JAVA_HOME 应该是:
/usr/lib/jvm/java-17-openjdk-amd64
第三步:设置环境变量
这里有几种方法来设置环境变量,范围不同,请根据你的需求选择。
仅对当前用户生效 (推荐)
这种方法只影响你当前登录的用户,不会影响系统中的其他用户,更安全。
-
打开终端配置文件 通常使用
~/.bashrc或~/.zshrc(如果你使用 Zsh shell)。# 对于使用 Bash 的用户 (Ubuntu 默认) nano ~/.bashrc # 对于使用 Zsh 的用户 (Oh My Zsh 用户) nano ~/.zshrc
-
在文件末尾添加以下内容 将下面的
<java_install_path>替换为你上一步中复制的实际路径。# 设置 JAVA_HOME export JAVA_HOME=<java_install_path> # export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 # 将 $JAVA_HOME/bin 添加到 PATH export PATH=$PATH:$JAVA_HOME/bin
解释:
export: 将变量设置为环境变量,使其在该 shell 及其子进程中可用。~/.bashrc: 这个文件在每次打开新的终端时都会被加载。
-
保存并关闭文件
- 在
nano编辑器中,按Ctrl + X。 - 按
Y确认保存。 - 按
Enter确认文件名。
- 在
-
使配置立即生效 你可以关闭当前终端并重新打开一个,或者运行以下命令让当前终端加载新的配置:
# 对于 Bash source ~/.bashrc # 对于 Zsh source ~/.zshrc
对所有用户生效 (需要谨慎)
如果你希望系统中的所有用户都能使用这个 Java 环境,可以修改 /etc/environment 文件。
-
使用
sudo打开文件sudo nano /etc/environment
-
添加或修改
PATH和JAVA_HOME这个文件需要用key="value"的格式,如果文件已有PATH变量,只需在末尾添加$JAVA_HOME/bin,如果没有JAVA_HOME,则需添加。# 文件内容可能类似这样: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" JAVA_HOME="<java_install_path>"
重要:确保
JAVA_HOME的值用引号括起来,PATH变量末尾已经包含了$JAVA_HOME/bin。 -
保存并关闭文件 (
Ctrl + X,Y,Enter)。 -
重新登录或重启系统 修改
/etc/environment后,通常需要重新登录或重启系统才能使所有用户的环境变量生效。
第四步:验证配置
无论你使用哪种方法,最后都需要验证环境变量是否设置正确。
-
检查
JAVA_HOMEecho $JAVA_HOME
如果设置成功,它会输出你设置的 Java 安装路径。
-
检查
PATHecho $PATH
在输出的路径列表中,你应该能看到你添加的
$JAVA_HOME/bin。 -
再次检查 Java 命令
java -version javac -version
确保它们指向你刚刚配置的 Java 版本。
-
(可选) 高级验证 你可以创建一个简单的 Java 文件来测试编译和运行。
# 创建一个测试文件 echo 'public class Test { public static void main(String[] args) { System.out.println("Java is working!"); } }' > Test.java # 编译 javac Test.java # 运行 java Test如果看到输出 "Java is working!",那么恭喜你,Java 环境变量已经完全配置成功!
# 清理测试文件 rm Test.java Test.class
常见问题与注意事项
-
JAVA_HOME未定义或指向错误路径 这是最常见的问题,请确保JAVA_HOME指向的是 JDK 目录(包含lib和bin等文件夹),而不是 JRE 目录。# 检查 $JAVA_HOME 是否指向了正确的 bin 目录 ls $JAVA_HOME/bin/java # 如果命令成功,说明路径正确,如果提示 "No such file or directory",则路径错误。
-
多个 Java 版本冲突 如果你安装了多个 Java 版本,
update-java-alternatives命令可以帮你切换默认版本。# 查看所有版本 sudo update-java-alternatives --list # 切换到指定版本 (例如切换到 JDK 11) sudo update-java-alternatives --set java-11-openjdk-amd64
切换后,
java -version的输出也会随之改变。 -
IDE (如 IntelliJ IDEA) 不识别环境变量 有时 IDE 会使用自己的 JDK 配置,而忽略系统环境变量,请确保在 IDE 的项目设置或全局设置中,正确配置了 SDK 的路径,通常就是你的
JAVA_HOME路径,将 IDE 的 SDK 设置为 "Use SDK from environment variables" 是一个好习惯。
希望这份详细的指南能帮助你成功在 Ubuntu 上配置 Java 环境变量!
