Java 是一种流行的编程语言,用于构建应用程序和软件解决方案。它可以在所有主流操作系统和设备上运行。

本指南介绍如何在 Ubuntu 22.04 上安装 OpenJDK 和 Oracle JDK。

快速参考

任务命令
安装默认 JDKsudo apt install default-jdk
安装 OpenJDK 17sudo apt install openjdk-17-jdk
安装 OpenJDK 21sudo apt install openjdk-21-jdk
检查 Java 版本java -version
更改默认 Javasudo update-alternatives --config java
设置 JAVA_HOME添加到 /etc/environment
卸载 Javasudo apt remove openjdk-17-jdk

开始之前

Java 有多种不同的实现。OpenJDK 和 Oracle JDK 是 Java 的两种主要实现,它们之间几乎没有或完全没有差异,功能上几乎相同。主要区别在于 OpenJDK 是一个开源项目,而 Oracle JDK 需要付费许可证,或者仅允许将软件用于非商业用途,例如开发或个人使用。此外,Oracle JDK 还有一些 OpenJDK 所不具备的额外商业功能。

Ubuntu 22.04 的默认软件仓库包含两个 OpenJDK 软件包:Java 运行时环境(JRE)和 Java 开发工具包(JDK)。JRE 由 Java 虚拟机(JVM)、类以及允许你运行 Java 程序的二进制文件组成。JDK 包含 JRE 以及构建 Java 应用程序所需的开发/调试工具和库。

如果你不确定应该安装哪个 Java 软件包,一般建议安装默认的 OpenJDK 版本。不过,某些应用程序可能需要特定版本,因此请查阅应用程序文档。

在 Ubuntu 中安装 OpenJDK

在安装 Java 之前,你可以通过输入以下命令来检查系统中是否已经安装了 Java:

终端
java -version

如果系统中未安装 Java,上述命令的输出会告诉你找不到 java 命令。否则,它会打印已安装的 Java 版本。

安装新软件包时,你应该始终先以具有 sudo 权限的用户或 root 身份运行以下命令来刷新本地软件包索引:

终端
sudo apt update

Java 当前的长期支持(LTS)版本包括:8、11、17、21 和 25。Ubuntu 22.04 中的默认 Java 是 Java 17,可通过安装 default-jdk 软件包获得。

执行以下命令以安装 OpenJDK 17 版本:

终端
sudo apt install openjdk-17-jdk
信息如果你想安装其他版本,请替换版本号。例如,如果你的应用程序需要 Java 11,请安装 openjdk-11-jdk 软件包。

安装完成后,你可以通过检查 Java 版本来验证:

终端
java -version

输出应类似如下:

输出
openjdk version "17.0.14" 2025-01-21
OpenJDK Runtime Environment (build 17.0.14+7-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.14+7-Ubuntu-0ubuntu122.04, mixed mode, sharing)

就是这样!你已成功在 Ubuntu 机器上安装了 Java。

JRE 包含在 JDK 软件包中。如果你只需要 JRE,请安装 openjdk-17-jre 软件包。如需最小化的 Java 运行时,请安装 openjdk-17-jdk-headless 软件包。

在 Ubuntu 中安装 Oracle Java

Oracle JDK 软件包不在 Ubuntu 默认软件仓库中提供。如果由于某些原因,你的应用程序需要 Oracle Java,你可以通过从 Oracle 网站下载文件,或使用第三方软件仓库(例如 Linux Uprising PPA)来安装 Oracle Java。在本示例中,我们将从 Oracle 网站下载 Debian 软件包。

访问 Oracle Java Archive 网站,并打开你所需 Java 版本的下载页面。

oracle java

我们将下载并安装版本 21。从文件列表中点击 Linux x64 Debian Package 以下载 .deb 软件包。

java 21

如果你是在服务器上安装 Java,请使用 wget 命令下载文件。右键单击链接以复制地址,并将其粘贴到 wget 之后:

终端
wget https://download.oracle.com/java/21/archive/jdk-21.0.1_linux-x64_bin.deb

文件下载完成后,执行以下命令在系统中安装 Oracle JDK:

终端
sudo apt install ./jdk-21.0.1_linux-x64_bin.deb

如果你下载的是其他 Java 版本,请替换上述命令中的文件名。

设置默认 Java 版本

在调试、构建或运行基于 Java 的应用程序时,默认会使用 Java 的默认版本。如果你的 Ubuntu 系统中安装了多个 Java 版本,你可以通过输入以下命令来检查哪个版本被设置为默认版本:

终端
java -version

要更改默认版本,请使用 update-alternatives 命令:

终端
sudo update-alternatives --config java

你将看到所有已安装 Java 版本的列表。例如,如果你安装了 OpenJDK 11、17 和 Oracle JDK 21,输出将类似如下:

输出
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/jdk-21-oracle-x64/bin/java       352329728 auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      manual mode
  3            /usr/lib/jvm/jdk-21-oracle-x64/bin/java       352329728 manual mode

Press <enter> to keep the current choice[*], or type selection number: 

输入你希望用作默认版本的编号,然后按 Enter。

通过执行以下命令验证默认版本是否已更改:

终端
java -version

设置 JAVA_HOME 环境变量

某些 Java 应用程序使用 JAVA_HOME 环境变量来确定 JDK 的安装位置。

要设置 JAVA_HOME 变量,首先使用 update-alternatives 查找 Java 安装路径:

终端
sudo update-alternatives --config java

在本示例中,不同 java 二进制文件的路径如下:

  • Oracle JDK 21 位于 /usr/lib/jvm/jdk-21-oracle-x64/bin/java
  • OpenJDK 17 位于 /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  • OpenJDK 11 位于 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
信息java 二进制文件位于 JAVA_HOME/bin/java。因此,我们应该将 JAVA_HOME 设置为上述路径之一,但不包括 bin/java 部分。

找到你首选 Java 安装的路径后,打开 /etc/environment 文件:

终端
sudo nano /etc/environment

假设你想将 JAVA_HOME 设置为指向 OpenJDK 17,请在文件末尾添加以下行:

/etc/environmentsh
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

若要使更改在当前会话中生效,你可以注销后重新登录,或运行以下 source 命令:

终端
source /etc/environment

要验证 JAVA_HOME 环境变量是否已正确设置,请输入:

终端
echo $JAVA_HOME

你应该会看到 Java 安装的路径:

输出
/usr/lib/jvm/java-17-openjdk-amd64
信息/etc/environment 是一个系统级配置文件,供所有用户使用。如果你想按用户设置 JAVA_HOME 变量,请将该行添加到 .bashrc 或用户登录时加载的任何其他配置文件中。

卸载 Java

你可以像卸载任何其他通过 apt 安装的软件包一样卸载 Java。

例如,要卸载 openjdk-17-jdk 软件包,请输入:

终端
sudo apt remove openjdk-17-jdk