核心概念
在开始之前,我们需要理解几个关键的环境变量:

-
JAVA_HOME:- 作用: 指向你安装的 Java JDK 的根目录。
- 为什么重要: 很多 Java 应用程序和服务器(如 Tomcat、Jetty)都需要通过这个变量来找到 JDK 的安装位置,它是一个“锚点”,其他工具依赖它。
-
PATH:- 作用: 操作系统查找可执行文件的路径列表。
- 为什么重要: 我们需要将 Java 的可执行文件(如
java,javac,jar等)所在的目录(通常是$JAVA_HOME/bin)添加到PATH中,这样,你就可以在任何目录下直接输入java或javac来运行它们,而无需输入完整的路径。
第一步:安装 Java JDK
在配置环境变量之前,你必须先安装 Java JDK,主要有两种方式:使用包管理器(推荐)或手动下载安装。
使用包管理器安装 (推荐)
这是最简单、最推荐的方式,尤其是在 Debian/Ubuntu 或 CentOS/RHEL 系统上。

Debian / Ubuntu 系统
使用 apt 安装 OpenJDK(Java 的开源实现)。
# 更新软件包列表 sudo apt update # 安装 OpenJDK 17 (LTS版本,推荐) sudo apt install openjdk-17-jdk # 如果你需要其他版本,11 或 8,可以替换版本号 # sudo apt install openjdk-11-jdk # sudo apt install openjdk-8-jdk
CentOS / RHEL / Fedora 系统
使用 dnf 或 yum 安装 OpenJDK。

# 使用 dnf (CentOS 8+, RHEL 8+, Fedora) sudo dnf install java-17-openjdk-devel # 使用 yum (CentOS 7, RHEL 7) # sudo yum install java-17-openjdk-devel # 同样,可以替换版本号,如 java-11-openjdk-devel
手动下载并安装 JDK
如果你需要特定版本(如 Oracle JDK 或 Adoptium 的 Temurin),可以手动下载。
-
下载 JDK: 访问 Adoptium (Eclipse Temurin) 或 Oracle JDK 等网站,下载适用于 Linux 的
.tar.gz压缩包。 -
解压: 将下载的文件解压到一个你选择的目录,
/usr/local/。# 假设下载的文件在 ~/Downloads 目录下 sudo tar -xzf ~/Downloads/jdk-17.0.8_linux-x64_bin.tar.gz -C /usr/local/
-
创建符号链接 (可选但推荐): 为了方便升级和管理,可以创建一个符号链接。
# 进入 /usr/local 目录 cd /usr/local # 创建一个名为 "java" 的符号链接,指向实际的 JDK 版本目录 # 请将 jdk-17.0.8 替换为你解压后的实际目录名 sudo ln -s jdk-17.0.8 java
第二步:查找 Java 安装路径
在配置环境变量之前,我们需要知道 JDK 的确切安装路径。
-
如果你使用包管理器安装,路径通常是固定的,
- Debian/Ubuntu:
/usr/lib/jvm/java-17-openjdk-amd64/ - CentOS/RHEL:
/usr/lib/jvm/java-17-openjdk-*/amd64/(星号代表具体版本号)
- Debian/Ubuntu:
-
如果你手动安装,路径就是你解压到的目录,
/usr/local/java/(如果你创建了符号链接)/usr/local/jdk-17.0.8/(如果没有符号链接)
使用命令查找路径
最可靠的方法是使用 update-java-alternatives (Debian/Ubuntu) 或 alternatives (CentOS/RHEL) 命令。
对于 Debian/Ubuntu:
# 列出所有已安装的 Java 版本 sudo update-java-alternatives --list # 输出示例: # java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 # java-11-openjdk-amd64 1103 /usr/lib/jvm/java-11-openjdk-amd64 # java-17-openjdk-amd64 1171 /usr/lib/jvm/java-17-openjdk-amd64 # 选择你想要使用的版本,java-17-openjdk-amd64 # 记下它的路径,/usr/lib/jvm/java-17-openjdk-amd64
对于 CentOS/RHEL:
# 列出所有已安装的 Java 版本 sudo alternatives --display java # 输出示例: # java - status is manual. # link currently points to /usr/lib/jvm/java-17-openjdk-17.0.8.0.7-1.el7_9.x86_64/bin/java # slave javac: /usr/lib/jvm/java-17-openjdk-17.0.8.0.7-1.el7_9.x86_64/bin/javac # ... # /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/bin/java - priority 1800 # /usr/lib/jvm/java-11-openjdk-11.0.16.0.1-1.el7_9.x86_64/bin/java - priority 1101 # /usr/lib/jvm/java-17-openjdk-17.0.8.0.7-1.el7_9.x86_64/bin/java - priority 1001 # 记下你想要使用的版本的路径,/usr/lib/jvm/java-17-openjdk-17.0.8.0.7-1.el7_9.x86_64
第三步:配置环境变量
我们将修改两个主要文件:/etc/profile (对所有用户生效) 或 ~/.bashrc (仅对当前用户生效)。推荐对单个用户使用 ~/.bashrc。
仅对当前用户生效
这是最常见和推荐的个人开发环境配置。
-
打开配置文件:
nano ~/.bashrc
-
在文件末尾添加以下内容:
- 请务必将
/path/to/your/jdk替换为你在第二步中找到的实际路径!
# 设置 Java 环境 export JAVA_HOME=/path/to/your/jdk export PATH=$PATH:$JAVA_HOME/bin
- 示例: 如果你使用包管理器在 Ubuntu 上安装了 OpenJDK 17,路径是
/usr/lib/jvm/java-17-openjdk-amd64就是:export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin
- 示例: 如果你手动安装并创建了符号链接,路径是
/usr/local/java就是:export JAVA_HOME=/usr/local/java export PATH=$PATH:$JAVA_HOME/bin
- 请务必将
-
保存并退出:
- 在
nano中,按Ctrl + X,然后按Y,最后按Enter。
- 在
-
使配置生效: 你可以关闭当前终端窗口并重新打开一个,或者运行以下命令:
source ~/.bashrc
对所有用户生效
如果你需要为系统上的所有用户配置 Java 环境(例如在服务器上)。
-
打开配置文件:
sudo nano /etc/profile
-
在文件末尾添加以下内容:
# Set Java environment for all users export JAVA_HOME=/path/to/your/jdk export PATH=$PATH:$JAVA_HOME/bin
-
保存并退出。
-
使配置生效: 所有用户都需要注销并重新登录才能使更改生效,或者,你可以运行
source /etc/profile,但这只会对当前终端会话生效。
第四步:验证配置
配置完成后,必须进行验证,确保一切正常。
-
检查
JAVA_HOME:echo $JAVA_HOME
如果配置成功,它会输出你设置的 JDK 路径。
-
检查
PATH:echo $PATH
在输出的路径列表中,你应该能看到
$JAVA_HOME/bin被正确添加。 -
检查 Java 版本:
java -version
这会显示当前 Java 的版本信息,
openjdk version "17.0.8" 2025-07-18 OpenJDK Runtime Environment Temurin-17.0.8+7 (build 17.0.8+7) OpenJDK 64-Bit Server VM Temurin-17.0.8+7 (build 17.0.8+7, mixed mode, sharing) -
检查 Java 编译器:
javac -version
这会显示 Java 编译器的版本,应该与
java -version的版本一致。
常见问题与解决方案
-
问题: 运行
java -version提示command not found。- 原因:
PATH配置有误,或者source命令没有执行。 - 解决: 重新检查
~/.bashrc或/etc/profile中的PATH变量,确保$JAVA_HOME/bin已正确添加,然后再次运行source ~/.bashrc。
- 原因:
-
问题:
echo $JAVA_HOME输出为空。- 原因:
JAVA_HOME变量没有设置成功。 - 解决: 检查配置文件中的拼写是否正确,路径是否存在,然后再次
source配置文件。
- 原因:
-
问题: 系统上有多个 Java 版本,但
java -version总是显示旧版本。- 原因: 你可能使用了
alternatives命令,但没有正确设置默认版本。 - 解决 (CentOS/RHEL):
# 查看可用的 Java 版本 sudo alternatives --config java # 然后根据提示输入数字来选择默认版本
- 解决 (Debian/Ubuntu):
# 设置默认的 Java 版本 sudo update-java-alternatives --set java-17-openjdk-amd64 # 请将 java-17-openjdk-amd64 替换为你想设为默认的版本名
- 原因: 你可能使用了
-
问题: 修改了配置文件后,
source了,但新开的终端还是不生效。- 原因: 你可能修改的是
/etc/profile,但新开的终端是由~/.bashrc或~/.bash_profile加载的,而后者没有source /etc/profile。 - 解决: 在你自己的
~/.bashrc文件末尾添加一行source /etc/profile,或者直接修改~/.profile或~/.bash_profile,最简单的办法还是直接修改~/.bashrc来管理自己的环境变量。
- 原因: 你可能修改的是
- 安装: 使用
apt/dnf或手动下载安装 JDK。 - 查找路径: 使用
update-java-alternatives --list或alternatives --display java找到准确的 JDK 路径。 - 配置: 编辑
~/.bashrc(推荐) 或/etc/profile,设置JAVA_HOME和PATH。 - 生效: 运行
source ~/.bashrc或重启终端。 - 验证: 使用
echo $JAVA_HOME,java -version,javac -version确认配置成功。
遵循以上步骤,你就可以成功地在 Linux 系统上配置好 Java 开发环境。
