杰瑞科技汇

Ubuntu下Java环境配置步骤是怎样的?

目录

  1. 前提条件:检查系统架构
  2. 使用 APT 包管理器(推荐)
    • 安装 OpenJDK (最简单)
    • 安装 Oracle JDK (可选)
    • 管理多个 Java 版本 (关键步骤)
  3. 手动下载安装包(高级)
    • 下载 JDK
    • 配置环境变量
  4. 验证 Java 安装
  5. 常见问题与解决方案
  6. 总结与建议

前提条件:检查系统架构

在安装任何软件之前,最好先确认你的系统是 64 位还是 32 位的,现代 Ubuntu 系统几乎都是 64 位的。

打开终端,运行以下命令:

uname -m

如果输出是 x86_64,那么你的系统是 64 位的,如果是 i686i386,则是 32 位的,所有现代的 JDK 都是为 64 位系统设计的。


使用 APT 包管理器(推荐新手)

这是最简单、最快捷的方式,并且包管理器会自动处理依赖关系,我们主要推荐安装 OpenJDK,它是 Java 的开源实现,完全免费,并且被广泛使用。

A. 安装 OpenJDK

OpenJDK 有多个版本,如 JDK 8, 11, 17, 21 等。建议安装最新的 LTS(长期支持)版本JDK 17 或 JDK 21。

更新软件包列表

sudo apt update

安装 JDK 17 (推荐)

sudo apt install openjdk-17-jdk

这个命令会安装 JDK 17 的开发工具包,包括 javac (编译器)、jar (打包工具) 和 javadoc (文档生成器) 等。

(可选) 安装其他版本 如果你需要其他版本,JDK 11,可以运行:

sudo apt install openjdk-11-jdk

或者 JDK 8:

sudo apt install openjdk-8-jdk

B. 安装 Oracle JDK (可选)

Oracle JDK 是官方提供的 JDK,需要接受许可协议,虽然功能上与 OpenJDK 基本一致,但有些商业项目或特定工具可能要求使用它。

添加 Oracle APT 仓库

sudo apt install -y wget apt-transport-https ca-certificates
wget -qO - https://packages.oracle.com/keys/oracle.asc | sudo gpg --dearmor -o /usr/share/keyrings/oracle.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle.gpg] https://packages.oracle.com/debian/ $(lsb_release -cs) non-free" | sudo tee /etc/apt/sources.list.d/oracle.list

更新并安装

sudo apt update
sudo apt install -y oracle-java17-installer

C. 管理多个 Java 版本 (关键步骤)

当你安装了多个版本的 Java (如 JDK 8 和 JDK 17) 后,系统默认使用的版本可能不是你想要的。update-alternatives 工具可以帮助你轻松切换。

查看已安装的 Java 版本

update-alternatives --config java

如果之前没有通过 update-alternatives 注册,你可能需要先手动注册它们。

手动注册 Java 版本 (如果需要) 假设你的 JDK 8 和 JDK 17 分别安装在以下路径(可以通过 which javals -l $(which java) 查看,或者直接去 /usr/lib/jvm/ 目录下找):

  • JDK 8 路径: /usr/lib/jvm/java-8-openjdk-amd64/bin/java
  • JDK 17 路径: /usr/lib/jvm/java-17-openjdk-amd64/bin/java

运行以下命令进行注册:

# 注册 JDK 8
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1
# 注册 JDK 17
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 2

数字 12 是优先级,数字越大,优先级越高。

切换 Java 版本 再次运行切换命令:

sudo update-alternatives --config java

你会看到类似下面的输出:

There are 2 choices for the alternative java (providing /usr/bin/java).
  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      2         auto mode
  1            /usr/lib/jvm/java-8-openjdk-amd64/bin/java      1         manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      2         manual mode
Press <enter> to keep the current choice[*], or type selection number:

输入你想要的编号(1),然后按回车,默认的 Java 版本就会切换。


手动下载安装包(高级)

当你需要使用官方的 Oracle JDK、或者 APT 仓库中没有的特定版本时,可以使用此方法。

A. 下载 JDK

  1. 访问 Oracle JDK 下载页面Adoptium (Eclipse Temurin) 下载页面
  2. 选择你需要的 JDK 版本(JDK 17)和操作系统(Linux x64)。
  3. 下载 .tar.gz 压缩包,下载到 ~/Downloads 目录。

B. 配置环境变量

创建安装目录 我们会将 JDK 安装在 /usr/local/ 目录下。

sudo mkdir -p /usr/local/java

解压 JDK 假设你下载的文件是 jdk-17.0.8_linux-x64_bin.tar.gz,并且它在 ~/Downloads 目录下。

# 将文件移动到创建的目录
sudo mv ~/Downloads/jdk-17.0.8_linux-x64_bin.tar.gz /usr/local/java/
# 进入目录并解压
cd /usr/local/java
sudo tar -xvf jdk-17.0.8_linux-x64_bin.tar.gz

解压后,你会得到一个类似 jdk-17.0.8 的文件夹。

设置环境变量 这是最关键的一步,你需要编辑 ~/.bashrc 文件(仅对当前用户生效)或 /etc/environment 文件(对所有用户生效),这里我们以 ~/.bashrc 为例。

nano ~/.bashrc

在文件末尾添加以下内容(请务必将路径 jdk-17.0.8 修改为你实际解压出的文件夹名):

# Set Java environment variables
export JAVA_HOME=/usr/local/java/jdk-17.0.8
export PATH=$PATH:$JAVA_HOME/bin

保存并退出(在 nano 中是 Ctrl+X,然后按 Y,再按 Enter)。

使配置生效

source ~/.bashrc

创建符号链接(可选但推荐) 为了方便管理和切换,可以创建一个符号链接指向 JAVA_HOME

sudo update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 100

这样,你就可以使用 sudo update-alternatives --config java 来切换了,就像方法一中一样。


验证 Java 安装

无论你使用哪种方法,最后都需要验证安装是否成功。

检查 Java 版本

java -version

如果安装成功,会显示你设置的 Java 版本信息,

openjdk version "17.0.8" 2025-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-122.04, mixed mode, sharing)

检查 JAVA_HOME 环境变量

echo $JAVA_HOME

如果输出为你设置的 Java 路径(/usr/lib/jvm/java-17-openjdk-amd64/usr/local/java/jdk-17.0.8),则说明环境变量配置正确。

检查 javac 编译器

javac -version

应该会显示与 java -version 一致的版本号。


常见问题与解决方案

  • 问题:java: command not found

    • 原因java 命令所在的目录没有添加到系统的 PATH 环境变量中。
    • 解决:检查你的 ~/.bashrc/etc/environment 文件,确保 PATH 变量包含了 $JAVA_HOME/bin,然后运行 source ~/.bashrc 使其生效。
  • **问题:JAVA_HOME is not defined correctly`

    • 原因JAVA_HOME 环境变量指向的路径不存在或不是有效的 JDK 主目录。
    • 解决:运行 echo $JAVA_HOME 检查路径,然后使用 ls -l $JAVA_HOME 确认该目录下是否存在 binlib 等文件夹,修正路径后,重新 source 配置文件。
  • 问题:版本不匹配或无法切换

    • 原因:多个 Java 版本没有被 update-alternatives 正确管理。
    • 解决:使用 sudo update-alternatives --config javasudo update-alternatives --config javac 来确保所有相关工具都指向同一个版本的 JDK。

总结与建议

方法 优点 缺点 适用人群
APT 包管理器 - 安装简单,一条命令搞定
- 自动处理依赖
- 方便管理多个版本
- 系统统一管理,易于卸载
- 版本可能不是最新的(但LTS版本很新)
- 无法安装特定厂商的JDK(如Oracle)
绝大多数用户,特别是新手和开发者
手动下载 - 可获得最新或特定版本的JDK
- 灵活性高,可自定义安装位置
- 步骤繁琐,需要手动配置环境变量
- 卸载时需要手动清理
- 容易出错
需要特定JDK版本、企业环境用户或高级用户

给新手的最终建议:

直接使用 方法一(APT 包管理器) 安装 OpenJDK 17,这是最稳定、最省心的方式,足以满足 99% 的开发和学习需求,只有在项目明确要求使用特定版本的 Oracle JDK 时,才考虑使用方法二。

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