这篇指南将使用 JAVA_HOME 和 PATH 两种最主流的设置方法,并重点推荐使用 alternatives 工具来管理多版本 Java,这是在 CentOS/RHEL 系统上的最佳实践。

第一步:检查并安装 Java
在设置环境变量之前,您需要确保 Java 已经安装在您的系统上。
检查系统是否已安装 Java
打开终端,运行以下命令来检查 Java 是否已安装以及安装的版本:
java -version
- 如果已安装:您会看到类似下面的输出,表明系统已有一个 Java 版本。
openjdk version "11.0.16" 2025-07-08 OpenJDK Runtime Environment 18.9 (build 11.0.16+8) OpenJDK 64-Bit Server VM 18.9 (build 11.0.16+8, mixed mode, sharing) - 如果未安装:您会看到
bash: java: command not found或类似的错误提示。
安装 Java (如果未安装)
推荐使用 yum 或 dnf 包管理器来安装 OpenJDK,以安装 OpenJDK 11 为例:
# 对于 CentOS 7 及更早版本 sudo yum install java-11-openjdk-devel # 对于 CentOS 8 及更新版本 (推荐使用 dnf) sudo dnf install java-11-openjdk-devel
为什么安装 java-11-openjdk-devel 而不是 java-11-openjdk?

java-11-openjdk: 只包含 Java 运行时环境。java-11-openjdk-devel: 包含 JRE、编译器 (javac)、调试工具等开发所需的所有工具,对于大多数应用开发场景,这是更合适的选择。
安装完成后,再次运行 java -version 和 javac -version 确认安装成功。
第二步:查找 Java 安装路径
设置 JAVA_HOME 需要知道 Java 的实际安装路径,最可靠的方法是使用 update-alternatives 工具。
sudo update-alternatives --config java
运行此命令后,您会看到一个类似下面的列表,显示了系统中所有可用的 Java 版本及其路径:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/bin/java
+ 2 /usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64/bin/java
Enter to keep the current selection[+], or type selection number:
记下您想使用的 Java 版本对应的路径(/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64/bin/java),我们需要的其实是这个路径的上一级目录,即 /usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64,这个路径就是我们将要设置的 JAVA_HOME。

第三步:设置环境变量
有三种主要的方式来设置环境变量:全局系统级别、用户级别 和 临时级别。
全局系统级别 (推荐)
这种方式会影响系统中的所有用户,需要 root 权限。
-
编辑
/etc/profile文件 这个文件是所有用户的登录脚本,系统级别的环境变量通常设置在这里。sudo vim /etc/profile # 或者使用 nano # sudo nano /etc/profile
-
在文件末尾添加以下内容 将
YOUR_JAVA_HOME_PATH替换为您在第二步中找到的实际路径。# Set Java Environment export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64 export PATH=$PATH:$JAVA_HOME/bin
JAVA_HOME: 指向 JDK 的根目录。PATH=$PATH:$JAVA_HOME/bin: 将 JDK 的bin目录添加到系统的PATH变量中,这样系统就能在任何位置找到java,javac等命令。
-
使配置立即生效 保存并关闭文件后,运行以下命令让配置立即生效,无需重启。
source /etc/profile
用户级别
这种方式只影响当前登录的用户,无需 root 权限,更安全。
-
编辑用户主目录下的
.bashrc文件vim ~/.bashrc
-
在文件末尾添加与环境变量与方法一相同。
# Set Java Environment for current user export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64 export PATH=$PATH:$JAVA_HOME/bin
-
使配置立即生效
source ~/.bashrc
临时级别 (仅当前终端会话)
这种方式仅在当前的终端窗口中有效,关闭窗口后失效,适合临时测试。
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64 export PATH=$PATH:$JAVA_HOME/bin
第四步:验证环境变量设置
无论您使用哪种方法,最后都需要验证设置是否成功。
-
验证
JAVA_HOMEecho $JAVA_HOME
如果设置成功,它会输出您设置的 Java 路径。
-
验证
PATHecho $PATH
您应该能在输出的字符串中看到
$JAVA_HOME/bin对应的路径。 -
验证 Java 命令 在一个新的终端窗口中(确保已经
source过配置文件),运行以下命令:java -version javac -version
如果都正确输出了您安装的 Java 版本信息,那么恭喜您,环境变量设置成功!
第五步:如何管理多个 Java 版本 (高级)
如果您需要在同一台机器上切换使用不同版本的 Java,update-alternatives 是您的最佳工具。
-
安装多个 Java 版本 同时安装 Java 8 和 Java 11。
sudo yum install java-1.8.0-openjdk-devel sudo yum install java-11-openjdk-devel
-
让
update-alternatives管理它们 这个命令会自动扫描并注册系统中已安装的 Java 版本。sudo /usr/sbin/alternatives --config java
您会看到一个列表,可以选择默认使用哪个版本,输入数字并回车即可。
-
同样管理
javac(Java 编译器)sudo /usr/sbin/alternatives --config javac
确保您为
java和javac选择了相同的版本。 -
检查当前状态
sudo /usr/sbin/alternatives --display java
通过这种方式,您可以在不修改任何环境变量的情况下,轻松地在不同 Java 版本之间切换。
| 步骤 | 命令/操作 | 说明 |
|---|---|---|
| 安装 | sudo yum install java-11-openjdk-devel |
安装 JDK 开发包。 |
| 查路径 | sudo update-alternatives --config java |
查找并确认 Java 的安装路径。 |
| 设变量 | sudo vim /etc/profileexport JAVA_HOME=...export PATH=$PATH:$JAVA_HOME/binsource /etc/profile |
(推荐) 在系统级别设置环境变量并使其生效。 |
| 验证 | echo $JAVA_HOMEjava -version |
检查环境变量是否设置正确,Java 命令是否可用。 |
| 切换版本 | sudo alternatives --config java |
(可选) 使用 alternatives 工具管理多版本 Java。 |
遵循以上步骤,您就可以在 CentOS 系统上稳定、正确地配置好 Java 开发环境。
