Java 环境变量主要设置以下三个:

JAVA_HOME: 指向你的 JDK 安装目录的路径,许多 Java 应用服务器和工具(如 Tomcat, Maven, Gradle)都需要通过这个变量来找到 JDK。PATH: 系统的命令搜索路径,我们将$JAVA_HOME/bin目录添加到PATH中,这样你就可以在任何目录下直接使用java,javac,jar等命令,而无需输入完整路径。CLASSPATH: (可选但推荐)用于指定 Java 虚拟机(JVM)在查找类文件时默认搜索的路径,在较新的 Java 版本中,如果只运行当前目录下的类文件,可以不设置此项,但为了兼容性和完整性,了解它很有必要。
第一步:检查是否已安装 Java
在配置之前,首先需要确认你的系统上是否已经安装了 Java,以及安装的版本。
-
检查 Java 是否已安装:
java -version
如果已经安装,会显示 Java 版本信息,如果未安装,你会看到 "command not found" 的错误。
-
检查 JDK 安装路径: 这个路径就是我们将要设置的
JAVA_HOME,JDK 会被安装在以下位置之一:
(图片来源网络,侵删)/usr/lib/jvm/(最常见)/usr/java//opt/
你可以使用
ls命令来查看该目录下的内容:ls /usr/lib/jvm/
你可能会看到类似
java-11-openjdk-amd64,jdk-17.0.2+8等文件夹,选择你想要使用的那个版本。
第二步:设置环境变量
根据你的用户权限和需求,有两种主要的配置方式:用户级配置和系统级配置。
用户级配置(推荐新手)
这种方式只对当前登录的用户有效,配置文件是用户主目录下的 .bashrc 或 .bash_profile。

-
打开配置文件: 使用
vim或nano等编辑器打开.bashrc文件。vim ~/.bashrc
-
在文件末尾添加变量: 将以下内容添加到文件的末尾。请务必将
/path/to/your/jdk替换为你自己实际的 JDK 安装路径!# 设置 Java 环境变量 export JAVA_HOME=/path/to/your/jdk # /usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH # export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 可选,已不常用
export关键字用于将变量导出为当前 Shell 及其子 Shell 的环境变量。PATH=$JAVA_HOME/bin:$PATH的意思是:将$JAVA_HOME/bin添加到PATH变量的最前面,这样系统会优先在这里查找命令。
-
保存并退出: 在
vim中,按Esc,然后输入wq并回车。 -
使配置生效: 重要! 新打开的终端会自动加载配置文件,但对于当前已打开的终端,你需要手动执行以下命令来让修改立即生效:
source ~/.bashrc
或者,你也可以直接关闭当前终端,然后重新打开一个新的终端。
系统级配置(需要管理员权限)
这种方式对所有用户都有效,配置文件是 /etc/profile 或 /etc/profile.d/ 目录下的文件。
-
打开配置文件: 需要使用
sudo获取管理员权限。sudo vim /etc/profile
-
在文件末尾添加变量:与用户级配置相同,同样请替换 JDK 路径。
# Set Java environment for all users export JAVA_HOME=/path/to/your/jdk export PATH=$JAVA_HOME/bin:$PATH # export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
保存并退出: 在
vim中,按Esc,然后输入wq并回车。 -
使配置生效: 系统级配置对所有用户下次登录时生效,为了让当前用户的 Shell 也立即生效,可以执行:
source /etc/profile
第三步:验证配置
设置完成后,必须进行验证,以确保一切正确。
-
验证
JAVA_HOME:echo $JAVA_HOME
如果设置成功,它会输出你设置的 JDK 路径,
/usr/lib/jvm/java-11-openjdk-amd64。 -
验证
PATH:echo $PATH
在输出的路径列表中,你应该能看到
$JAVA_HOME/bin对应的路径(/usr/lib/jvm/java-11-openjdk-amd64/bin)被添加到了最前面。 -
验证 Java 命令:
java -version javac -version
这两条命令都应该能正常工作,并显示与你设置的
JAVA_HOME一致的版本信息。
常见问题与注意事项
我系统上有多个 Java 版本怎么办?(OpenJDK 和 Oracle JDK)
Linux 系统可能默认安装了 OpenJDK,如果你需要切换 Java 版本,手动修改环境变量很麻烦,推荐使用 update-alternatives 工具(基于 Debian/Ubuntu 的系统)或手动创建符号链接。
使用 update-alternatives (推荐)
-
注册所有可用的 Java 版本:
# 假设你的 JDK 安装路径 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/jdk-17.0.2/bin/java 2
-
切换版本:
sudo update-alternatives --config java
系统会列出所有已注册的 Java 版本,你可以输入编号来选择默认使用哪一个。
-
同样,为
javac,jar等命令做相同操作:sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 1 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.2/bin/javac 2 sudo update-alternatives --config javac
为什么我的 java -version 和 javac -version 版本不一致?
这通常意味着 java 和 javac 命令指向了不同的 JDK 安装目录,这可能是由于 PATH 变量配置错误,或者 update-alternatives 配置不一致导致的,请检查你的 PATH 和 update-alternatives 设置。
CLASSPATH 还需要设置吗?
在现代 Java 开发中,如果你只是运行简单的单文件程序,并且类文件在当前目录下,通常不需要设置 CLASSPATH。javac 和 java 命令默认会查找当前目录下的类文件。
如果你需要运行一个位于特定 .jar 文件中的主类,或者依赖其他非标准位置的库,那么设置 CLASSPATH 就变得必要了。
# 运行 myjar.jar 中的 Main 类 java -cp myjar.jar com.example.Main
这里的 -cp 选项会临时覆盖 CLASSPATH 环境变量。
| 步骤 | 命令/操作 | 说明 |
|---|---|---|
| 检查 | java -version |
检查 Java 是否已安装。 |
ls /usr/lib/jvm/ |
找到 JDK 的具体安装路径。 | |
| 配置 | vim ~/.bashrc (用户级) 或 sudo vim /etc/profile (系统级) |
打开环境变量配置文件。 |
export JAVA_HOME=/path/to/jdkexport PATH=$JAVA_HOME/bin:$PATH |
添加或修改环境变量。 | |
| 生效 | source ~/.bashrc 或 source /etc/profile |
使配置在当前终端立即生效。 |
| 验证 | echo $JAVA_HOMEjava -version |
确认变量设置和命令可用性。 |
遵循以上步骤,你就可以在 Linux 系统上成功配置好 Java 开发环境。
