杰瑞科技汇

Centos Java环境变量如何正确配置?

核心概念:三个关键环境变量

在开始之前,请先理解这三个核心环境变量的作用:

Centos Java环境变量如何正确配置?-图1
(图片来源网络,侵删)
  1. JAVA_HOME:

    • 作用: 指向你的 Java Development Kit (JDK) 安装根目录的路径,这是最重要的变量,很多 Java 应用程序和服务器(如 Tomcat, Jenkins)都依赖它来找到 Java。
    • : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64//usr/local/java/jdk-11.0.13/
  2. PATH:

    • 作用: 操作系统查找可执行文件的路径列表,我们需要将 JDK 的 bin 目录添加到 PATH 中,这样你才能在任何目录下直接使用 java, javac, jar 等命令。
    • 修改方式: 在 PATH 变量的开头或末尾添加 $JAVA_HOME/bin
  3. CLASSPATH:

    • 作用: 指定 Java 虚拟机 (JVM) 在查找类文件时需要搜索的路径,对于现代 Java 开发,通常不需要手动设置它,因为 JAR 文件会通过类路径参数传递,而当前目录 () 默认已包含在内。在绝大多数情况下,你可以不设置 CLASSPATH,如果设置不当,反而可能导致问题,我们将在本指南中省略它以保持简洁。

第一步:安装 Java

在配置环境变量之前,你必须先安装 Java,在 CentOS 上,主要有两种方式:使用 YUM/DNF 安装(推荐)或手动安装。

使用 YUM/DNF 安装(推荐,简单易管理)

这是最简单、最推荐的方式,尤其是在生产服务器上,因为它可以方便地通过系统包管理器进行更新和维护。

  1. 检查系统版本:

    • CentOS 7 / RHEL 7 使用 yum
    • CentOS 8 / RHEL 8 / CentOS Stream 使用 dnf
  2. 安装 OpenJDK (以 Java 11 为例): OpenJDK 是 Java 的开源实现,完全免费且功能齐全。

    # 对于 CentOS 7
    sudo yum install java-11-openjdk-devel
    # 对于 CentOS 8 / Stream
    sudo dnf install java-11-openjdk-devel
    • java-11-openjdk: 提供了 Java 运行时环境。
    • java-11-openjdk-devel: 提供了 Java 开发工具,包括 javac (编译器) 和头文件,如果你要开发 Java 程序,这个是必须的。
  3. 验证安装: 安装完成后,Java 命令通常会自动添加到系统的 PATH 中。

    java -version
    javac -version

    你应该能看到类似下面的输出:

    [user@centos ~]$ java -version
    openjdk version "11.0.13" 2025-10-19 LTS
    OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
    [user@centos ~]$ javac -version
    javac 11.0.13

手动安装(适用于需要特定版本)

当你需要安装 Oracle JDK 或官方 OpenJDK 的特定版本时,可以使用此方法。

  1. 下载 JDK: 访问 Oracle JDK 下载页面Eclipse Temurin (Adoptium) 下载页面 下载 .tar.gz 压缩包,这里以 Eclipse Temurin 为例,它是一个高质量的 OpenJDK 发行版。

    # 示例:下载 JDK 17 (LTS)
    wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.5%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz
  2. 创建安装目录并解压:

    # 通常建议安装在 /usr/local 目录下
    sudo mkdir -p /usr/local/java
    sudo tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz -C /usr/local/java/

    解压后,目录结构类似 /usr/local/java/jdk-17.0.5+8/

  3. 设置权限:

    sudo chown -R root:root /usr/local/java/jdk-17.0.5+8

第二步:配置环境变量

我们将为安装好的 Java 配置环境变量。强烈建议为所有用户配置,而不是只为当前用户配置。

查找 Java 安装路径

在配置 JAVA_HOME 之前,你需要确切的安装路径。

  • 如果你使用 YUM/DNF 安装:

    # 使用 update-alternatives 命令查找
    sudo update-alternatives --config java

    运行此命令后,会列出所有已安装的 Java 版本及其路径,记下你想要使用的那个路径。

  • 如果你手动安装: 路径就是你之前解压的目录,/usr/local/java/jdk-17.0.5+8

  • 通用查找方法:

    # 这个命令会显示 java 命令的实际路径
    which java
    # 输出可能是 /usr/bin/java
    # 使用 ls -l 查看符号链接指向的真实位置
    ls -l /usr/bin/java
    # 输出类似 lrwxrwxrwx. 1 root root 21 Nov 20 10:00 /usr/bin/java -> /etc/alternatives/java
    # 再查看 /etc/alternatives/java 的指向
    ls -l /etc/alternatives/java
    # 输出类似 lrwxrwxrwx. 1 root root 47 Nov 20 10:00 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-11.0.13.0.9-1.el7_9.x86_64/bin/java
    # 这里的路径就是 JAVA_HOME 的根目录
    # JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.9-1.el7_9.x86_64

编辑环境变量文件

我们将编辑 /etc/profile 文件,这样所有登录到系统的用户都会加载这些环境变量。

sudo vim /etc/profile

在文件的末尾,添加以下内容:

# Java Environment Variables
export JAVA_HOME=/path/to/your/java/jdk  # <--- 将此路径替换为你自己的 JDK 根目录
export PATH=$JAVA_HOME/bin:$PATH

示例:

  • YUM/DNF 安装的 Java 11:
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.9-1.el7_9.x86_64
    export PATH=$JAVA_HOME/bin:$PATH
  • 手动安装的 JDK 17:
    export JAVA_HOME=/usr/local/java/jdk-17.0.5+8
    export PATH=$JAVA_HOME/bin:$PATH

保存并退出编辑器(在 vim 中是 wq)。

使配置立即生效

新用户登录时会自动加载 /etc/profile,但为了让当前用户的 shell 立即生效,可以运行:

source /etc/profile

第三步:验证配置

让我们来验证环境变量是否配置正确。

  1. 检查 JAVA_HOME:

    echo $JAVA_HOME

    输出应该和你设置的路径一致。

  2. 检查 PATH:

    echo $PATH

    确认输出的开头是 /path/to/your/java/jdk/bin:

  3. 再次运行 Java 命令:

    java -version
    javac -version

    命令应该能正常执行,并且显示你配置的 Java 版本。

  4. 终极验证(可选): 运行一个简单的 Java 程序来确保 CLASSPATH 也不是问题。

    # 创建一个测试文件
    echo 'public class Test { public static void main(String[] args) { System.out.println("Java Environment is OK!"); } }' > Test.java
    # 编译
    javac Test.java
    # 运行
    java Test

    如果输出 Java Environment is OK!,那么恭喜你,一切都配置成功了!


故障排除

  • 问题: java: command not found

    • 原因: PATH 没有配置正确,或者你没有 source 配置文件。
    • 解决: 检查 /etc/profile 文件中的 PATH 变量,确保 $JAVA_HOME/bin 在其中,然后运行 source /etc/profile
  • 问题: bash: JAVA_HOME: undefined variable

    • 原因: JAVA_HOME 变量没有设置。
    • 解决: 检查 /etc/profile 文件中的 export JAVA_HOME= 行,确保路径正确。
  • 问题: 版本不对,系统中存在多个 Java 版本。

    • 原因: 系统的 alternatives 机制可能指向了另一个版本。
    • 解决: 使用 sudo update-alternatives --config java 来选择你想要作为默认的 Java 版本,如果你手动安装的版本没有在列表中,可以手动添加它(这比较复杂,通常推荐使用 YUM/DNF 或 SDKMAN! 等工具来管理多版本 Java)。
步骤 命令/操作 说明
安装 sudo yum install java-11-openjdk-devel 使用包管理器安装 OpenJDK
查找路径 ls -l /etc/alternatives/java 找到 JDK 的真实安装路径
编辑配置 sudo vim /etc/profile 为所有用户设置环境变量
添加变量 在文件末尾添加 JAVA_HOMEPATH 定义 Java 路径并将其加入系统路径
生效配置 source /etc/profile 让当前 Shell 立即加载新配置
验证 echo $JAVA_HOME & java -version 检查变量和命令是否正常工作

遵循以上步骤,你就可以在 CentOS 系统上成功配置好 Java 环境。

分享:
扫描分享到社交APP
上一篇
下一篇