杰瑞科技汇

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

概览:为什么需要配置环境变量?

Java 程序(尤其是命令行工具,如 javac, java, jar)需要知道 Java 的安装位置在哪里,环境变量就是告诉系统这些工具路径的“路标”。

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

主要有两个核心环境变量需要配置:

  1. JAVA_HOME: 指向 Java 安装根目录的路径,许多 Java 应用服务器(如 Tomcat, Jetty)和构建工具(如 Maven, Gradle)都需要这个变量来定位 JDK。
  2. PATH: 系统的可执行文件搜索路径,我们将 Java 的 bin 目录添加到 PATH 中,这样你就可以在终端的任何位置直接输入 java, javac 等命令,而无需输入完整路径。

第一步:安装 Java

在配置环境变量之前,你必须先安装 Java,在 Ubuntu 上,推荐使用 apt 包管理器来安装 OpenJDK,这是 Java 的开源实现。

更新软件包列表

打开终端,首先更新你的包索引:

sudo apt update

安装 OpenJDK

根据你的需求选择安装版本。OpenJDK 17 是一个长期支持版本,推荐大多数用户使用。

Ubuntu如何正确配置Java环境变量?-图2
(图片来源网络,侵删)

安装 OpenJDK 17 (推荐):

sudo apt install openjdk-17-jdk

其他版本:

  • OpenJDK 11 (LTS): sudo apt install openjdk-11-jdk
  • OpenJDK 8 (LTS): sudo apt install openjdk-8-jdk

安装过程会自动下载并安装 JDK,包括 JRE (Java Runtime Environment) 和开发工具(如 javac, jar)。

验证安装

安装完成后,验证 Java 是否已成功安装。

java -version

如果安装成功,你会看到类似下面的输出:

openjdk version "17.0.10" 2025-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-120.04, mixed mode, sharing)

你也可以检查编译器:

javac -version

输出应该类似:

javac 17.0.10

第二步:查找 Java 安装路径

配置 JAVA_HOME 需要知道 Java 的确切安装路径,最可靠的方法是使用 update-java-alternatives 工具,它会显示所有已安装的 Java 版本及其路径。

在终端中运行:

sudo update-java-alternatives --list

你会看到类似下面的输出,/usr/lib/jvm/java-17-openjdk-amd64 就是我们要找的路径。

java-1.8.0-openjdk-amd64  1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-17-openjdk-amd64      2004       /usr/lib/jvm/java-17-openjdk-amd64

注意: 请记录下你想要使用的 Java 版本对应的路径,上面的例子中,我们使用 java-17-openjdk-amd64 的路径 /usr/lib/jvm/java-17-openjdk-amd64


第三步:配置环境变量

Ubuntu 中有多个地方可以设置环境变量,它们的作用范围不同。

  • /etc/environment: 全局系统级环境变量,对所有用户和所有启动的程序都有效。
  • ~/.bashrc (或 ~/.profile, ~/.zshrc): 用户级环境变量,只对当前用户有效,并且只在交互式 shell 启动时加载。

推荐方法:对于普通用户,修改 ~/.bashrc 是最安全、最常用的方式。

为当前用户配置 (推荐)

  1. 打开配置文件 使用 gedit (图形界面) 或 nano (终端) 编辑器打开你的 bashrc 文件。

    nano ~/.bashrc
  2. 在文件末尾添加变量 将光标移动到文件末尾,添加以下内容。请务必将 /path/to/your/java 替换为你上一步查找到的实际路径!

    # Set Java environment variables
    export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    • export JAVA_HOME=...: 定义 JAVA_HOME 变量。
    • export PATH=$JAVA_HOME/bin:$PATH: 将 $JAVA_HOME/bin 目录添加到 PATH 变量的最前面。$PATH 表示原有的 PATH 值,这样做可以确保优先使用我们配置的 Java 命令。
  3. 保存并退出

    • nano 中,按 Ctrl + X,然后按 Y,最后按 Enter
  4. 使配置生效 新开一个终端窗口,或者运行以下命令让当前终端的配置立即生效:

    source ~/.bashrc

为整个系统配置 (需要 sudo)

如果你需要为所有用户配置 Java 环境,可以修改 /etc/environment 文件。

  1. 使用 sudo 打开文件

    sudo nano /etc/environment
  2. 添加或修改变量 文件内容可能已经有一些变量定义(如 PATH),你需要添加 JAVA_HOME,并确保 PATH 包含 Java 的 bin 目录。 文件内容应如下所示(同样,替换路径!):

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
    JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

    注意: 在这个文件中,我们不需要手动添加 $JAVA_HOME/binPATH,因为大多数现代 Linux 发行版(包括 Ubuntu)在解析 PATH 时会自动处理 JAVA_HOME,但为了确保万无一失,最稳妥的方式是像上面一样,将 JAVA_HOME/bin 直接写入 PATH,通常系统会自动处理。

  3. 保存并退出

    • nano 中,按 Ctrl + X,然后按 Y,最后按 Enter
  4. 重启系统或重新登录 这种系统级的配置修改后,通常需要重启系统或注销后重新登录才能对所有用户完全生效。


第四步:验证环境变量配置

配置完成后,最重要的一步是验证它是否正确。

  1. 检查 JAVA_HOME

    echo $JAVA_HOME

    如果配置成功,它会输出你设置的 Java 路径:

    /usr/lib/jvm/java-17-openjdk-amd64
  2. 检查 PATH

    echo $PATH

    在输出的路径列表中,你应该能看到 $JAVA_HOME/bin 对应的路径(/usr/lib/jvm/java-17-openjdk-amd64/bin)位于最前面。

  3. 再次运行 Java 命令 确保 Java 命令仍然正常工作:

    java -version
    javac -version

常见问题与解决方案

问题1:echo $JAVA_HOME 没有输出

  • 原因: 配置文件没有生效,或者路径设置错误。
  • 解决:
    1. 确认你保存了配置文件。
    2. 运行 source ~/.bashrc (或重启终端)。
    3. 检查 ~/.bashrc 文件中的路径是否正确,有没有拼写错误。

问题2:系统上有多个 Java 版本,我想切换

  • 解决: 使用 update-java-alternatives 工具可以轻松切换。
    1. 查看所有版本:sudo update-java-alternatives --list
    2. 切换到你想要的版本,例如切换到 Java 11:
      sudo update-java-alternatives --set java-1.8.0-openjdk-amd64
    3. 切换后,你的 JAVA_HOMEPATH 会自动更新,无需手动修改配置文件。

问题3:我安装了多个 JDK (如 Oracle JDK 和 OpenJDK),如何管理?

  • 解决: 除了 update-java-alternatives,你也可以使用第三方工具如 SDKMAN! 来更好地管理多个 SDK (包括 Java, Maven, Gradle 等),它为每个用户提供了独立的、易于切换的环境。
步骤 操作 命令/文件 说明
安装 安装 OpenJDK sudo apt install openjdk-17-jdk 获取 Java 运行时和编译工具。
查找路径 查找 Java 安装路径 sudo update-java-alternatives --list 获取 JAVA_HOME 需要的精确路径。
配置变量 为当前用户配置 ~/.bashrc 添加 export JAVA_HOME=...export PATH=...
为系统所有用户配置 /etc/environment 需要 sudo,修改后需重启或重登录。
生效配置 使配置立即生效 source ~/.bashrc 或直接打开一个新的终端窗口。
验证 检查变量 echo $JAVA_HOMEecho $PATH 确认变量设置正确。

遵循以上步骤,你就可以在 Ubuntu 系统上成功配置好 Java 环境变量了,对于大多数开发者来说,方法一(修改 ~/.bashrc 是最简单且最合适的选择。

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