在 CentOS、Rocky Linux、RHEL 和 Fedora 上安装 Java 的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介

本教程将向您展示如何在当前版本的基于 RPM 的 Linux 发行版上安装 Java:Red Hat Enterprise Linux、CentOS、Fedora 和 Rocky Linux。Java 是一种流行的编程语言和软件平台,允许您运行许多服务器端应用程序。

本教程涵盖了安装最新的默认版本的 Java,以及选择安装任何旧版本,并根据需要在您的环境中切换多个版本。

先决条件

在开始本指南之前,您应该在服务器上配置一个具有 sudo 权限的常规非根用户 - 这是您应该登录服务器的用户。您可以按照我们的 Rocky Linux 8 初始服务器设置指南中的步骤来学习如何配置常规用户帐户。

步骤 1 - 安装 OpenJDK

Java 平台有三个不同的版本:标准版(SE)、企业版(EE)和微型版(ME)。本教程专注于 Java SE(Java 平台,标准版)。几乎所有开源 Java 软件都是设计用于运行 Java SE。

可以安装两种不同的 Java SE 包:Java 运行时环境(JRE)和 Java 开发工具包(JDK)。JRE 是 Java 虚拟机(JVM)的实现,它允许您运行编译的 Java 应用程序和小程序。JDK 包括 JRE 以及其他编写、开发和编译 Java 应用程序和小程序所需的软件。

Java 还有两种不同的实现:OpenJDK 和 Oracle Java。这两种实现在很大程度上基于相同的代码,但 OpenJDK(Java 的参考实现)是完全开源的,而 Oracle Java 包含一些专有代码。大多数 Java 应用程序都可以很好地与任一种实现一起使用,但您应该使用您的软件所需的任一实现。

您可以在单个系统上安装各种版本和发布的 Java,但大多数人只需要安装一个版本。考虑到这一点,尽量只安装您需要运行或开发应用程序的 Java 版本。

本节将向您展示如何使用 yum 软件包管理器安装预构建的 OpenJDK JRE 和 JDK 软件包。yum 是使用 RPM 软件包的发行版的默认软件包管理器。

要使用 yum 安装 OpenJDK,您可以运行 sudo yum install java

sudo yum install java

默认情况下,尝试安装 java 而不指定版本将解析为最常见的稳定版本的 OpenJDK JRE。正如您从此输出中看到的,截至本文撰写时,这是 java-1.8.0-openjdk

Last metadata expiration check: 0:02:38 ago on Tue 22 Feb 2022 04:57:59 PM UTC.
Dependencies resolved.
========================================================================================
 Package                     Arch   Version                             Repo       Size
========================================================================================
Installing:
 java-1.8.0-openjdk          x86_64 1:1.8.0.322.b06-2.el8_5             appstream 341 k
Installing dependencies:
 alsa-lib                    x86_64 1.2.5-4.el8                         appstream 488 k
 atk                         x86_64 2.28.1-1.el8                        appstream 270 k
 avahi-libs                  x86_64 0.7-20.el8                          baseos     61 k
 copy-jdk-configs            noarch 4.0-2.el8                           appstream  29 k
 cups-libs                   x86_64 1:2.2.6-40.el8                      baseos    432 k
 fribidi                     x86_64 1.0.4-8.el8                         appstream  88 k
…

Java 还会提供多个依赖项。在确认提示时,输入 y 然后按 Enter 继续安装。您可能还会被提示接受您正在安装的存储库的签名密钥:

Importing GPG key 0x6D745A60:
 Userid     : "Release Engineering <infrastructure@rockylinux.org>"
 Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
Is this ok [y/N]:

再次输入 y 然后再次按 Enter。

现在您应该已经安装了可用的 Java。为了确认这一点,您可以运行 java -version,以检查您的环境中现在可用的 Java 版本:

java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

Java 命名约定与 Linux 软件包命名约定之间的交互可能有些令人困惑。在本教程的前面,我们澄清了用于开发的完整 JDK 环境和用于运行 Java 应用程序的 JRE 环境之间的区别。尽管 OpenJDK 是 Java 的开源发行版的名称,但您实际上只安装了 OpenJDK JRE。为了安装完整的 OpenJDK JDK,您应该安装相应的包,并在其名称后附加 -devel。这是其他编程环境的开发包的常见约定,Java 也遵循这一约定,尽管术语在这里有些尴尬地重叠。

与之前一样,您可以安装 java-devel 来获取默认版本,或者指定 java-1.8.0-openjdk-devel

sudo yum install java-devel
DigitalOcean Droplet Agent                               63 kB/s | 3.3 kB     00:00
Dependencies resolved.
========================================================================================
 Package                     Arch      Version                       Repository    Size
========================================================================================
Installing:
 java-1.8.0-openjdk-devel    x86_64    1:1.8.0.322.b06-2.el8_5       appstream    9.8 M

Transaction Summary
========================================================================================
Install  1 Package

Total download size: 9.8 M
Installed size: 41 M
Is this ok [y/N]:

安装此软件包后,您应该拥有一个完整的 OpenJDK 环境,可以编译和运行任何没有特定版本不兼容性的 Java 软件。在下一节中,您将安装和管理其他版本的 Java。

步骤 2 – 安装其他 OpenJDK 版本

最近,OpenJDK 更改了其版本编号方案,以更紧密地跟踪 Oracle Java 发布。为了安装更新版本的 OpenJDK,您可以在软件包名称中指定版本号,就像使用 1.8.0 一样。例如,要安装 OpenJDK 17,您可以执行 yum install java-17-openjdk

sudo yum install java-17-openjdk
上次元数据到期检查:0:03:36 前,于 2022 年 2 月 22 日星期二下午 05:42:44 UTC。
已解决依赖关系。
========================================================================================
 软件包                      架构       版本                      仓库         大小
========================================================================================
正在安装:
 java-17-openjdk              x86_64     1:17.0.2.0.8-4.el8_5       appstream     244 k
正在安装依赖关系:
 adwaita-cursor-theme         noarch     3.28.0-2.el8               appstream     646 k
 adwaita-icon-theme           noarch     3.28.0-2.el8               appstream      11 M
 at-spi2-atk                  x86_64     2.26.2-1.el8               appstream      88 k
 at-spi2-core                 x86_64     2.28.0-1.el8               appstream     168 k
 colord-libs                  x86_64     1.4.2-1.el8                appstream     234 k
 java-17-openjdk-headless     x86_64     1:17.0.2.0.8-4.el8_5       appstream      41 M
 lcms2                        x86_64     2.9-2.el8                  appstream     163 k
…

与之前一样,您可以通过在软件包名称后附加 -devel 来安装完整的 JDK 环境。但是,在此之后,运行 java 程序仍将默认使用您之前安装的 OpenJDK 1.8.0 版本,您可以通过再次运行 java -version 来确认:

java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

在下一步中,您将管理已安装的 Java 版本。

步骤 3 – 设置默认的 Java 版本

如果您安装了多个版本的 Java,您可能希望设置一个版本作为默认版本(即用户运行 java 命令时将运行该版本)。此外,一些应用程序需要设置某些环境变量以定位要使用的 Java 安装。

alternatives 命令通过符号链接管理默认命令,可用于选择默认的 Java 版本。要列出可以由 alternatives 管理的可用 Java 版本,请使用 alternatives --config java

sudo alternatives --config java

输出应列出您安装的两个 Java 版本:

[secondary_label output]
有 2 个程序提供 'java'。

  选择    命令
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java)
   2           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java)

输入选择编号以选择默认使用的 `java` 可执行文件。它将重新排列系统上必要的符号链接,以确保 `java` 命令指向正确的库集。您可以根据需要重新运行此命令,`java -version` 的输出应相应更改:

```command
java -version
openjdk version "17.0.2" 2022-01-18 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)

许多 Java 应用程序还使用 JAVA_HOMEJRE_HOME 环境变量来确定要使用的 java 可执行文件。

例如,如果您将 Java 安装到 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin(即您的 java 可执行文件位于 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java),您可以在 bash shell 或脚本中设置 JAVA_HOME 环境变量,如下所示:

export JAVA_HOME=(/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre

如果您希望将 JAVA_HOME 设置为系统上每个用户的默认设置,可以将上述行添加到 /etc/environment 文件。您可以使用 echo>> shell 重定向将其追加到文件中,以避免直接编辑 /etc/environment 文件,方法是运行以下命令:

sudo sh -c "echo export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre >> /etc/environment"

在下一步中,您将安装 Oracle 的专有 Java 以及您的 OpenJDK 版本。

第四步 – 安装 Oracle Java

本指南的这一部分将向您展示如何安装 Oracle Java JRE 和 JDK(64 位),这些软件包在撰写本文时是最新版本。

在本节中,我们将使用 wget 命令来下载 Oracle Java 软件包。wget 可能不会默认包含在您的 Linux 发行版中,因此为了跟随操作,您需要运行以下命令来安装它:

sudo yum install wget

切换到您的主目录并使用以下命令下载 Oracle Java RPM:

cd ~
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm"

然后使用 yum localinstall 安装 RPM(如果您下载了不同版本,请在此处替换文件名):

sudo yum localinstall jdk-17_linux-x64_bin.rpm

在确认提示时,输入 y 然后按 Enter 继续安装。

您可以删除之前下载的存档文件:

rm ~/jdk-17_linux-x64_bin.rpm

现在您可以重新运行 alternatives 命令,您应该会看到第三个选项来使用 Oracle Java:

sudo alternatives --config java
[secondary_label output]
有 3 个程序提供 'java'。

  选择    命令
-----------------------------------------------
   1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin/java)
 + 2           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64/bin/java)
*  3           /usr/java/jdk-17.0.2/bin/java

按 Enter 保留当前选择[+], 或输入选择编号:

本教程中的步骤应足以安装和运行 Java 的任何可用版本,具体取决于您的用例。

结论

在本教程中,您使用 yum 软件包管理器、alternatives 命令和环境变量安装和管理了多个版本的 Java。这些都是 Linux 环境管理的基本方面,而 Java 提供了一个特别好的示例,因为它有许多不同的版本。

接下来,您可能想学习如何在其他情境中使用 Java。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白如意i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值