三个关键环境变量
在开始之前,你需要了解三个最重要的环境变量:

-
JAVA_HOME:- 作用: 指向你的 JDK 安装根目录的路径,很多 Java 应用程序和服务器(如 Tomcat、Jetty)都依赖这个变量来找到 Java 的安装位置。
- 示例:
/usr/lib/jvm/java-11-openjdk-amd64
-
PATH:- 作用: 操作系统查找可执行文件的路径列表,我们需要将 JDK 的
bin目录添加到PATH中,这样你就可以在任何目录下直接使用java,javac,jar等命令。 - 示例: 将
/usr/lib/jvm/java-11-openjdk-amd64/bin添加到PATH的前面。
- 作用: 操作系统查找可执行文件的路径列表,我们需要将 JDK 的
-
CLASSPATH:- 作用: 指定 Java 虚拟机(JVM)在查找类(.class 文件)和库(.jar 文件)时需要搜索的路径。在现代 Java 开发中,通常不推荐手动设置
CLASSPATH,大多数构建工具(如 Maven, Gradle)和应用服务器会自动处理它,如果你不使用旧版应用,可以忽略此变量。
- 作用: 指定 Java 虚拟机(JVM)在查找类(.class 文件)和库(.jar 文件)时需要搜索的路径。在现代 Java 开发中,通常不推荐手动设置
操作步骤
我们将分步完成整个过程:

第 1 步:安装 Java Development Kit (JDK)
你需要确保已经安装了 JDK,推荐使用 OpenJDK,它是开源且免费的。
对于 Ubuntu/Debian 系统:
# 更新软件包列表 sudo apt update # 安装 OpenJDK 11 (你也可以安装其他版本,如 17, 21) sudo apt install openjdk-11-jdk # 验证安装 java -version javac -version
对于 CentOS/RHEL/Fedora 系统:
# 首先安装 EPEL 仓库(如果尚未安装) sudo yum install epel-release # 安装 OpenJDK 11 sudo yum install java-11-openjdk-devel # 验证安装 java -version javac -version
第 2 步:查找 JDK 的安装路径
设置 JAVA_HOME 需要知道 JDK 的确切安装路径,最可靠的方法是使用 update-java-alternatives (Debian/Ubuntu) 或 alternatives (CentOS/RHEL) 命令。

对于 Ubuntu/Debian 系统:
# 列出所有已安装的 Java 版本及其路径 sudo update-java-alternatives --list
输出会类似这样:
java-1.11.0-openjdk-amd64 /usr/lib/jvm/java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64-amd64
从中你可以找到路径,/usr/lib/jvm/java-1.11.0-openjdk-amd64,这就是你的 JAVA_HOME。
对于 CentOS/RHEL 系统:
# 列出所有已安装的 Java 版本及其路径 sudo alternatives --config java
选择你想要使用的 Java 版本,然后查看 /usr/lib/jvm/ 目录,找到对应的 JDK 路径。
通用方法:
你也可以使用 ls 和 readlink 命令来查找:
# 找到 java 命令的实际路径 readlink -f $(which java)
输出会是类似 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 的路径,去掉末尾的 /bin/java,剩下的就是 JAVA_HOME。
第 3 步:设置环境变量
这是最关键的一步,你有两种主要方式:仅对当前用户生效或对系统所有用户生效。
仅对当前用户生效(推荐)
这种方式更安全,不会影响其他用户,配置文件是用户主目录下的 ~/.bashrc 或 ~/.profile。
-
打开配置文件 使用你喜欢的文本编辑器,如
nano或vim。nano ~/.bashrc
-
在文件末尾添加以下内容 请务必将
/path/to/your/jdk替换为你上一步找到的实际 JDK 路径!# 设置 Java 环境变量 export JAVA_HOME=/path/to/your/jdk export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME=...: 定义变量并使其对当前 shell 及其子进程可用。export PATH=$JAVA_HOME/bin:$PATH: 将 JDK 的bin目录添加到PATH变量的最前面。$PATH表示保留PATH原有的值。
-
保存并退出 在
nano中,按Ctrl + X,然后按Y,最后按Enter。 -
使配置立即生效 你可以注销并重新登录,或者运行以下命令让当前 shell 重新加载配置文件:
source ~/.bashrc
-
验证配置 运行以下命令,检查变量是否设置正确。
echo $JAVA_HOME echo $PATH java -version
echo $JAVA_HOME应该会输出你设置的 JDK 路径。
对系统所有用户生效(需要管理员权限)
这种方式会影响系统中的所有用户,配置文件是 /etc/profile 或 /etc/environment。
方法 A:修改 /etc/profile (推荐)
-
使用
sudo打开配置文件sudo nano /etc/profile
-
在文件末尾添加以下内容
# 设置 Java 环境变量 (系统范围) export JAVA_HOME=/path/to/your/jdk export PATH=$JAVA_HOME/bin:$PATH
-
保存并退出
-
使配置立即生效 所有用户都需要注销并重新登录才能生效,或者,你可以运行
source /etc/profile,但这只会对当前终端生效。
方法 B:修改 /etc/environment (更简单)
这个文件是专门为环境变量设计的,语法更简单,不需要 export 关键字。
-
使用
sudo打开配置文件sudo nano /etc/environment
-
添加或修改以下行
JAVA_HOME="/path/to/your/jdk" PATH="/path/to/your/jdk/bin:$PATH"
- 注意: 值必须用双引号括起来。
-
保存并退出
-
使配置立即生效 同样,所有用户都需要注销并重新登录。
常见问题与排查
问题 1:java -version 正常,但 echo $JAVA_HOME 没有输出
- 原因: 你可能没有正确
source配置文件,或者你修改了错误的配置文件(你修改了~/.bashrc但在新的终端窗口里检查,而新窗口可能加载的是~/.profile)。 - 解决: 确保你在修改配置文件后,执行了
source ~/.bashrc(或对应的配置文件),并在同一个终端窗口中进行验证。
问题 2:java 命令找不到,但 JDK 已安装
- 原因:
PATH变量中没有包含 JDK 的bin目录。 - 解决: 检查
echo $PATH的输出,确保/path/to/your/jdk/bin在列表中,如果不在,请按照上述步骤重新配置PATH。
问题 3:系统中安装了多个 Java 版本,如何切换?
- Ubuntu/Debian: 使用
update-java-alternatives。# 查看所有可用版本 sudo update-java-alternatives --list # 切换到指定版本 sudo update-java-alternatives --set java-1.17.0-openjdk-amd64
- CentOS/RHEL: 使用
alternatives。# 查看所有可用版本 sudo alternatives --config java # 根据提示输入数字选择即可
| 场景 | 推荐方法 | 优点 | 缺点 |
|---|---|---|---|
| 个人开发 | 修改 ~/.bashrc |
安全,不影响他人 | 需要为每个新用户单独设置 |
| 服务器/多用户 | 修改 /etc/profile 或 /etc/environment |
一次设置,全局生效 | 影响所有用户,需要管理员权限 |
对于绝大多数开发者来说,方案一(修改 ~/.bashrc) 是最常用和最推荐的方式,希望这份指南能帮助你顺利完成 Java 环境的配置!
