本页内容
- 前置条件
- 简介
- 安装 Java OpenJDK 安装 Java OpenJDK 11 安装 Java OpenJDK 17
- 安装 Java Oracle JDK 安装 Java Oracle JDK 17 安装 Java Oracle JDK 20
- 设置默认 Java 版本
- 配置 JAVA_HOME 环境变量 配置 JAVA_HOME 系统级 配置 JAVA_HOME 用户级
- 总结
- 安装 Java OpenJDK 11
- 安装 Java OpenJDK 17
- 安装 Java Oracle JDK 17
- 安装 Java Oracle JDK 20
- 配置 JAVA_HOME 系统级
- 配置 JAVA_HOME 用户级
Java 是 Sun Microsystem 于 1995 年创建的基于类且面向对象的编程语言。Java 是一种高级编程语言,设计目标是可移植,并尽可能少地依赖就能在任何系统上运行。
Java 编程语言的总体目的是让开发者一次编写程序或应用程序,但应用程序本身可以在多种操作系统上的任何系统中运行。
在本指南中,我将向你展示如何在 AlmaLinux 9 服务器上安装 Java OpenJDK 和/或 Java Oracle JDK。此外,我们还将介绍 JAVA_HOME 环境变量的配置以及如何设置默认 Java 版本。
前置条件
要继续本指南,请确保你具备以下条件:
- 一台 AlmaLinux 9 服务器 - 本演示使用主机名为 almalinux9-server 的 AlmaLinux 9。
- 一个具有 sudo/root 管理员权限的非 root 用户。
简介
在开始之前,你必须决定要使用哪个 Java 版本。你必须了解以下两个 Java 版本:
- Java Oracle JDK:由 Sun MicroSystems 提供的 Java SE(Standard Edition,标准版)实现,该公司在 2009 年被 Oracle 收购,并由此成为 Oracle Java 或 Oracle JDK。
- Java OpenJDK:Oracle JDK 的开源版本,具有相同的代码库。OpenJDK 的主要贡献者是 Oracle 以及开放的 Java 社区。
以下是 Oracle JDK 与 OpenJDK 之间的一些主要区别:
- 许可证:Oracle JDK 拥有用于获取软件更新的商业许可证,而 OpenJDK 是完全开源的,每 6 个月更新一次。
- 功能:Oracle JDK 附带更多功能,用于商业许可证。
- 性能:关于性能存在较大争议。Oracle JDK 性能更好,但 OpenJDK 的性能正在快速持续提升。
接下来,什么是 JDK 和 JRE?
- JRE 即 Java Runtime Environment(Java 运行时环境),提供运行已编译 Java 应用程序所需的全部内容,但不能用于创建或编译 Java 应用程序。
- JDK 即 Java Development Kit(Java 开发工具包),提供用于运行和编写 Java 应用程序的完整工具。JDK 包含 JRE 软件包,还包含 javac、jdb、jshell 等额外工具。
安装 Java OpenJDK
默认情况下,AlmaLinux 仓库提供多个版本的 Java OpenJDK,包括 OpenJDK v11 和 v17。你可以使用 DNF 包管理器安装这两个 Java OpenJDK 版本。
安装 Java OpenJDK 11
要安装 Java OpenJDK 11,请运行以下 dnf 命令。出现提示时,输入 y 确认并按 ENTER。
sudo dnf install java-11-openjdk java-11-openjdk-devel

Java 安装完成后,输入以下命令以验证 Java 版本。
java --version
你应该会看到类似以下的输出:

安装 Java OpenJDK 17
在撰写本文时,AppStream 仓库中 Java OpenJDK 的最新版本为 v17。运行以下 dnf 命令以安装 Java OpenJDK 17。
sudo dnf install java-17-openjdk java-17-openjdk-devel
输入 y 确认安装,然后按 ENTER。

Java 安装完成后,运行以下命令以验证 Java 版本。
java --version
以下输出表明已安装 Java OpenJDK 17。

安装 Java Oracle JDK
如果你决定安装并使用 Java Oracle JDK,请执行以下步骤。
首先,运行以下命令在你的系统中安装 curl。
sudo dnf install curl -y
目前,Oracle 提供两个版本的 Java Oracle JDK。在本示例中,你将学习如何安装 Java Oracle JDK 17(最新的 LTS(Long Term Supports,长期支持)版本)以及 Java Oracle JDK 20(Java 的最新版本)。
你可以通过 tar.gz 安装 Oracle JDK,也可以使用适用于 RedHat 系发行版的 RPM 软件包,或适用于 Debian 系发行版的 DEB 软件包进行安装。

安装 Java Oracle JDK 17
运行以下 curl 命令下载 Java Oracle JDK 17 的 RPM 软件包。
curl -qO https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
下载过程完成后,使用以下命令安装 Java Oracle JDK 17 的 RPM 文件。
sudo rpm -ivh jdk-17_linux-x64_bin.rpm

安装完成后,使用以下命令检查 Java 版本。
java --version
你会注意到系统中已安装 Java SE Runtime Environment(JRE)17。

安装 Java Oracle JDK 20
在撰写本文时,最新的 Oracle JDK 版本为 v20。使用以下 curl 命令下载其 RPM 文件。
curl -qO https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.rpm
之后,使用以下 rpm 命令安装 Java Oracle JDK 20。
sudo rpm -ivh jdk-20_linux-x64_bin.rpm

Oracle JDK 安装完成后,运行以下命令验证 Java 版本。
java --version
你将看到已安装 Java SE Runtime Environment(JRE)20。

设置默认 Java 版本
系统中安装了多个 Java 版本后,你应该选择要用于运行应用程序的默认 Java 版本。推荐的做法是借助 AlmaLinux 系统上的 'alternatives' 命令来完成。
输入以下命令以获取系统中 alternatives 命令的列表。
sudo alternatives --list
如果你安装了多个 Java 版本,应该会看到类似以下的输出:

现在运行以下命令来设置默认 Java 版本。输入你偏好的 Java 版本对应的数字,然后按 ENTER 确认。
sudo alternatives --config java
在以下示例中,我们将使用 Java OpenJDK 17,即编号 1。

接下来,运行以下命令验证 Java 版本。如果成功,默认 Java 版本将更改为 OpenJDK 17。
java --version
你可能还需要类似地更改默认 javac 工具版本,方法是使用 alternatives 命令,选择默认 javac 版本,然后验证 javac 版本。
sudo alternatives --config javac
javac --version

最后,如果你打算使用 Java OpenJDK,还可以考虑使用以下命令设置默认的 JDK 和 JRE。
sudo alternatives --config jre_openjdk
sudo alternatives --config java_sdk_openjdk
以下是更改默认 JRE 时的截图。

以下是更改默认 JDK 时的截图。

配置 JAVA_HOME 环境变量
当你打算使用 Apache Tomcat 和 Gradle 等第三方应用程序时,必须在 AlmaLinux 服务器上配置默认的 JAVA_HOME 环境变量。
你可以将 JAVA_HOME 环境变量设置为系统级或用户级的配置。
系统级配置 JAVA_HOME
要在系统范围内使用 JAVA_HOME,你可以利用 /etc/profile.d/ 目录下的 bash 配置文件,该文件会在登录时自动加载。
使用以下 nano 编辑器命令创建新脚本 /etc/profile.d/java.sh。
sudo nano /etc/profile.d/java.sh
插入以下配置。在本示例中,我们将使用 Java OpenJDK 17 来设置 JAVA_HOME。
JAVA_HOME="/usr/lib/jvm/java-17-openjdk"
完成后保存并退出编辑器。
现在运行以下命令,使脚本 /etc/profile.d/java.sh 可执行并将其加载到当前会话中。
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
使用以下命令验证 JAVA_HOME 环境变量。如果操作成功,你应该看到 JAVA_HOME 环境变量指向你默认的 OpenJDK 目录。
echo $JAVA_HOME

用户级配置 JAVA_HOME
如果你希望将 JAVA_HOME 设置为用户级,可以利用登录时自动加载的 ~/.bashrc 脚本。
使用以下命令登录到你的用户。
su - username
使用以下 nano 编辑器命令编辑 ~/.bashrc 文件。
nano ~/.bashrc
将以下配置添加到文件末尾。
JAVA_HOME="/usr/lib/jvm/java-17-openjdk"
完成后保存更改并退出编辑器。
现在重新加载 ~/.bashrc 以应用更改,然后使用以下命令验证 JAVA_HOME 环境变量。
source ~/.bashrc
echo $JAVA_HOME
操作成功后,你应该会看到类似以下的输出:

总结
大功告成!你已在 AlmaLinux 9 系统上完成了 Java OpenJDK 和/或 Java Oracle JDK 的安装。你还通过 alternatives 命令配置了默认 Java 版本,并为系统级和用户级配置了 JAVA_HOME 环境变量。现在你可以使用它来开发 Java 应用程序项目,或在系统上部署 Java 应用程序。