如何在CentOS、Rocky Linux、RHEL和Fedora上安装Java

介紹

這篇教程將向您展示如何在當前版本的基於RPM的Linux發行版上安裝Java:Red Hat Enterprise Linux、CentOS、Fedora和Rocky Linux。Java是一種流行的編程語言和軟件平台,可讓您運行許多服務器端應用程序。

本教程涵蓋安裝最新的默認版本的Java,以及挑選任何舊版本進行安裝,並根據需要在您的環境中切換多個版本。

先決條件

在開始本指南之前,您應該在您的服務器上配置一個常規的非root用戶,並具有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

  1. sudo yum install java

默認情況下,嘗試安裝java而不指定版本將解析為OpenJDK JRE的最常見的穩定版本。從這個輸出中可以看到,截至目前,即是java-1.8.0-openjdk:

Output
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繼續安裝。您還可能會被提示接受來自您正在安裝的存儲庫的簽名密鑰:

Output
Importing GPG key 0x6D745A60: Userid : "Release Engineering <[email protected]>" 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版本:

  1. java -version

注意:大多數情況下,命令行參數都是由一個破折號表示單字母參數,或者兩個破折號表示完整單詞參數。Java採用了一種使用單個破折號表示所有參數的不同慣例,在這種情況下,-version

Output
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

  1. sudo yum install java-devel
Output
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

  1. sudo yum install java-17-openjdk
Output
Last metadata expiration check: 0:03:36 ago on Tue 22 Feb 2022 05:42:44 PM UTC. Dependencies resolved. ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: java-17-openjdk x86_64 1:17.0.2.0.8-4.el8_5 appstream 244 k Installing dependencies: 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 来确认:

  1. java -version
Output
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

  1. sudo alternatives --config java

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

output
There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 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) Enter to keep the current selection[+], or type selection number:

輸入選擇編號以選擇預設使用的java可執行檔。系統將重新排列必要的符號連結,以確保java命令指向正確的函式庫集。您可以根據需要重新運行此命令,java -version的輸出應相應更改:

  1. java -version
Output
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環境變量,如下所示:

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

注意: JAVA_HOME環境變量更喜歡您將路徑設置為Java安裝的結尾處在/jre目錄。這種慣例可能會因變量而異,因此最好在進行更改時仔細檢查示例。

如果您希望將JAVA_HOME設置為系統上每個用戶的默認值,請將前一行添加到/etc/environment文件中。您可以使用echo>> shell重定向將其附加到文件中,以避免直接編輯/etc/environment文件,通過運行此命令:

  1. 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版本一起。

步驟 4 – 安裝 Oracle Java

本指南的這部分將向您展示如何安裝 Oracle Java JRE 和 JDK(64 位元),這是本文寫作時這些套件的最新版本。

注意:
如果您正在使用本頁面上的互動式終端機,您將無法將 Oracle Java 下載並安裝到環境中。

在本節中,我們將使用 wget 命令下載 Oracle Java 軟體套件。 wget 可能不會被預設包含在您的 Linux 發行版中,因此為了跟隨進度,您需要運行以下命令安裝它:

  1. sudo yum install wget

在安裝 Oracle Java 之前,您必須接受 Java SE 的 Oracle 二進位碼許可協議,這是其中的一個步驟。

注意:為了安裝 Oracle Java,您需要前往 Oracle Java 下載頁面,接受許可協議,並複製適用於 Linux x86 的 .rpm 套件的下載鏈接。將複製的下載鏈接替換為 wget 命令中突出顯示的部分。

切換到您的主目錄並使用以下命令下載 Oracle Java RPM:

  1. cd ~
  2. 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(如果您下載了不同版本,請在此處替換檔名):

  1. sudo yum localinstall jdk-17_linux-x64_bin.rpm

在確認提示時,輸入y然後按Enter繼續安裝。

您可以刪除之前下載的存檔文件:

  1. rm ~/jdk-17_linux-x64_bin.rpm

現在您可以重新運行alternatives命令,您應該會看到第三個選項以使用Oracle Java:

  1. sudo alternatives --config java
output
There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 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 to keep the current selection[+], or type selection number:

本教程中的步驟應該足以安裝和運行根據您的用例使用的任何可用版本的Java。

結論

在本教程中,您使用yum包管理器、alternatives命令和環境變量安裝和管理多個版本的Java。這些都是Linux環境管理的基本方面,Java因其許多不同的版本而提供了一個特別好的示例。

接下來,您可能想要學習如何在其他情境中使用Java

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora