第一步:检查系统是否已安装 Java
在设置之前,首先要确认你的系统上是否已经安装了 Java,以及安装了哪个版本。

-
检查 Java 是否安装 打开终端,输入以下命令:
java -version
如果系统已安装 Java,它会显示 Java 的版本信息,如果提示
command not found,说明 Java 未安装或未配置环境变量。 -
查找 Java 的安装路径
java -version有效,但你想知道它具体安装在哪里,可以使用update-alternatives(Debian/Ubuntu)或alternatives(CentOS/RHEL)命令:# 对于 Debian/Ubuntu 系统 sudo update-alternatives --config java
# 对于 CentOS/RHEL 系统 sudo alternatives --config java
这个命令会列出所有已安装的 Java 版本及其路径,记下你想要使用的那个版本的路径,
/usr/lib/jvm/java-11-openjdk-amd64/bin/java。
(图片来源网络,侵删)如果上述命令没有结果,你也可以使用
which java或whereis java来查找:which java # 通常返回一个符号链接,如 /usr/bin/java ls -l /usr/bin/java # 查看符号链接指向的真实路径
第二步:安装 Java (如果未安装)
如果你的系统没有 Java,你需要先安装它,这里以安装 OpenJDK 为例,它是 Java 的开源实现。
对于 Ubuntu/Debian 系统:
# 更新软件包列表 sudo apt update # 安装 OpenJDK 11 (你也可以选择其他版本,如 17, 8) sudo apt install openjdk-11-jdk # 验证安装 java -version javac -version
对于 CentOS/RHEL/Fedora 系统:
# 对于 CentOS/RHEL 7/8 sudo yum install java-11-openjdk-devel # 对于 Fedora 或较新的 RHEL/CentOS sudo dnf install java-11-openjdk-devel # 验证安装 java -version javac -version
第三步:设置环境变量
这是最核心的一步,Java 主要依赖两个环境变量:
JAVA_HOME: 指向 Java 安装目录的根路径,很多 Java 应用服务器(如 Tomcat、Jetty)和构建工具(如 Maven、Gradle)都需要这个变量来定位 JRE。PATH: 系统的命令搜索路径,我们需要将 Java 的可执行文件目录(如bin)添加到PATH中,这样你才能在任何目录下直接使用java,javac等命令。
临时设置(仅当前终端会话有效)
这种方式适用于临时测试,不推荐长期使用。

# 假设你的 Java 安装根路径是 /usr/lib/jvm/java-11-openjdk-amd64 export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 将 $JAVA_HOME/bin 追加到 PATH 变量中 export PATH=$PATH:$JAVA_HOME/bin # 验证设置 echo $JAVA_HOME echo $PATH java -version
关闭终端后,这些设置就会失效。
为当前用户设置(推荐)
这种方式只会影响当前用户,不会影响系统中的其他用户,推荐个人开发者使用。
-
编辑用户配置文件 打开你的 shell 配置文件,对于大多数 Linux 是
~/.bashrc或~/.bash_profile,如果你使用的是 Zsh,则是~/.zshrc。# 使用 vim 编辑器打开 ~/.bashrc 文件 vim ~/.bashrc
-
添加环境变量 在文件末尾添加以下内容。请务必将
/usr/lib/jvm/java-11-openjdk-amd64替换为你自己系统中 Java 的实际安装路径。# 设置 JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 将 Java 的 bin 目录添加到 PATH export PATH=$PATH:$JAVA_HOME/bin
-
保存并退出
- 在
vim中,按Esc键,然后输入wq,按回车。
- 在
-
使配置生效 你可以关闭当前终端然后重新打开一个新的,或者执行以下命令让配置立即生效:
source ~/.bashrc
-
验证设置 在新的终端中验证:
echo $JAVA_HOME java -version
如果都正确显示,说明设置成功。
为所有用户设置(系统级)
如果你需要为系统中的所有用户配置 Java 环境,可以修改系统级别的配置文件。
-
编辑系统配置文件
sudo vim /etc/profile
或者更推荐
/etc/environment,因为它更简洁,且被所有 shell 会话读取。 -
添加环境变量 在
/etc/profile文件末尾添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin
在
/etc/environment文件中,格式稍有不同(不需要export):JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" PATH="$PATH:$JAVA_HOME/bin"
-
使配置生效 所有用户重新登录后,配置会自动生效,或者让所有当前登录的用户立即生效:
# 对于 /etc/profile source /etc/profile # 对于 /etc/environment # 需要重启或重新登录才能对所有会话生效
第四步:处理多个 Java 版本(可选)
当你系统上安装了多个 Java 版本(如 Java 8 和 Java 11)时,你可能需要在不同项目之间切换使用。
update-alternatives (Debian/Ubuntu) 和 alternatives (CentOS/RHEL) 工具可以轻松管理这个。
-
注册可用的 Java 版本
# 对于 Debian/Ubuntu sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1 sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 2 # 对于 CentOS/RHEL sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1 sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 2
(注意:如果你的 Java 是通过
apt或yum安装的,通常已经自动注册好了。) -
切换 Java 版本 运行以下命令,然后根据提示选择你想要的版本:
# 对于 Debian/Ubuntu sudo update-alternatives --config java # 对于 CentOS/RHEL sudo alternatives --config java
选择后,
java -version的输出就会立即改变。JAVA_HOME也会通过符号链接指向正确的版本。
总结与最佳实践
| 方法 | 配置文件 | 生效范围 | 优点 | 缺点 |
|---|---|---|---|---|
| 临时 | 终端命令 | 当前终端 | 快速,无需修改文件 | 关闭终端即失效 |
| 当前用户 | ~/.bashrc, ~/.profile |
当前用户 | 不影响其他用户,推荐个人使用 | 需要为新用户单独配置 |
| 所有用户 | /etc/profile, /etc/environment |
全局用户 | 一次配置,所有用户生效 | 影响所有用户,权限要求高 |
推荐流程:
- 使用
apt或yum安装你需要的 OpenJDK 版本。 - 使用
update-alternatives或alternatives管理和切换 Java 版本。 - 为当前用户设置环境变量:编辑
~/.bashrc或~/.zshrc,添加JAVA_HOME和PATH,这是最灵活、最安全的方式。
完成以上步骤后,你的 Linux 系统就能正确识别和使用 Java 了。
