在程式設計的世界中,Java 一直是最頂尖的程式語言之一。Java 是一種高階程式語言,遵循物件導向程式設計系統的概念。它也是一種與平台無關的語言,可產生跨平台的應用程式。Java 無處不在 – 銀行與交易、網頁框架、遊戲(Minecraft),甚至是行動作業系統(Android)。
在本指南中,我們將引導您完成在 CentOS 和 Fedora.
先決條件
執行系統級別的變更需要 sudo 權限。然而,建議在執行這些操作時使用具有 sudo 權限的非 root 使用者。您可以參考我們的教學課程,以了解如何使用 sudoers 檔案管理使用者的 sudo 權限。如需深入的 CentOS 伺服器安裝與設定說明,請參考本教學課程.
Java 版本與變體
目前有幾種不同的 Java 版本可供選擇:
- 標準版 - Java SE
- 企業版 - Java EE
- 微型版 - Java ME
雖然它們在業界都佔有一席之地,但大多數 Java 應用程式都是使用 Java SE 開發的。本指南將示範如何安裝 Java SE。
Java SE 提供兩種套件類型:
- JRE:代表 Java 執行環境(Java Runtime Environment)。它是執行任何 Java 應用程式所必需的。JRE 套件包含必要的二進位檔案和程式庫,用以提供 JVM(Java 虛擬機器)和公用程式。
- JDK:代表 Java 開發套件(Java Development Kit)。JDK 包含開發和偵錯 Java 應用程式所需的所有必要工具和程式庫。任何 JDK 套件也都會包含一份 JRE。
Java 有兩種主要的實作方式:Oracle Java 和 OpenJDK。OpenJDK 是一個開源專案,構成了 Java 本身的基礎。Oracle Java 則是在 OpenJDK 的基礎上加入了一些專有程式碼來實作。
這兩種 Java 實作具有不同的授權政策。自 Java 9 起,OpenJDK 版本採用 GPLv2+CPE (具有 Classpath 例外條款的 GPLv2)授權。另一方面,Oracle Java 則是依據 OTN License Agreement for Java SE.
授權政策的改變在 Java 社群中引起了軒然大波。自此之後,出現了多種不同的 OpenJDK 版本:AdoptOpenJDK, GraalVM, Liberica 等。
該選擇哪一個 Java SE?
面對這麼多選擇,要決定哪一個 Java 版本適合您可能會讓人不知所措。本節將討論所有這些選項的適用範圍。
- JDK 對比 JRE
這是一個相當直接的選擇。在大多數情況下,JDK 是給 Java 開發人員使用的。您是否想要學習或開發 Java 應用程式?如果是,那麼選擇 JDK 就對了。
如果您只需要執行 Java 程式,那麼選擇 JRE 即可。安裝 JDK 也可以,但就效率而言,這是多餘的。
- OpenJDK 對比 Oracle
OpenJDK 和 Oracle Java 都是免費提供的。然而,根據部署環境的不同,Oracle Java 可能需要付費。定價與 Java 的發行週期有關。每六個月會發行一個新的 Java 版本。隨著每個新版本的發行,舊版本將不會在公開程式碼庫中獲得任何修補程式、錯誤修正或改進。
至於部署環境,只要是用於教育目的和個人使用,Oracle Java 就是免費的。但如果是用於企業生產環境,則可能需要付費。如果企業需要對舊版本 Java 的支援,Oracle 會提供付費的延長支援。
您是僅將 Java 用於個人用途的個人使用者嗎?那麼兩者都適合您。您是否有興趣為您的公司/企業部署 Java?Oracle Java 需要付費使用。或者,您可以參考其他 OpenJDK 版本。原生(Vanilla)OpenJDK 不提供支援,但各種 OpenJDK 版本(如 AdoptOpenJDK、Amazon Corretto、Azul Zulu 等)免費為所有主要版本提供長期支援。
- OpenJDK 版本
在功能方面,所有 OpenJDK 版本提供的體驗幾乎相同。通常是各種微小(以及一些重大)功能區分了每個 OpenJDK 版本。就修補程式和錯誤修復而言,原生 OpenJDK 遵循與 Oracle Java 類似的模式。一旦發布了新的 Java 版本,舊版本將不會收到任何未來的更新。然而,較舊的 OpenJDK 版本仍然可以免費使用。
這就是其他版本派上用場的地方。這些 OpenJDK 版本通常比 Oracle 官方提供更長期的舊版本和新版本支援。其中一些專案得到了業界巨頭的贊助。
安裝 Java
在撰寫本文時,最新的 LTS 版本是 Java 11。建議使用 Java LTS(長期支援)版本,因為它將在最長的時間內收到更新。Java 11 LTS OpenJDK 版本預計將獲得支援至 2030 年。
-
安裝 Oracle JDK
Oracle JDK 16
Oracle 提供適用於 Linux 的可安裝套件。來自 Oracle 的 JDK 提供 DEB、RPM 和 TAR.GZ 套件。因為我們使用的是 CentOS 和 Fedora,所以我們的目標是 Oracle JDK RPM 套件。
Oracle 僅提供最新的 JDK 版本供公開下載。對於較舊的版本,您需要一個 Oracle 帳戶才能存取。在撰寫本文時,最新的 Java 版本是 Java 16。首先,請查看 Oracle JDK 16 下載頁面:

要在 CentOS 上安裝 Java 套件,請執行以下命令:
|
1 |
sudo yum localinstall jdk-16.0.1_linux-x64_bin.rpm |

要在 Fedora 上安裝 Java 套件,請執行以下命令:
|
1 |
sudo rpm -Uvh --nodeps ./jdk-16.0.1_linux-x64_bin.rpm |
Oracle JDK 11
請查看 Oracle JDK 11 下載頁面。然後,下載 RPM 套件。現在是安裝套件的時候了。要在 CentOS 上安裝 RPM 套件,請執行以下命令:
|
1 |
sudo yum localinstall jdk-11.0.11_linux-x64_bin.rpm |
要在 Fedora 上安裝 RPM 套件,請執行以下命令:
|
1 |
sudo rpm -Uvh --nodeps ./ jdk-11.0.11_linux-x64_bin.rpm |
Oracle JDK 8
儘管發布了更新的版本,Java 8 仍然是開發人員中最受歡迎的版本之一。可以理解的是,業界正在慢慢轉向更新的版本,但 Java 8 的受歡迎程度仍然很高。它也可以從 Oracle 官方網站下載為可安裝的 RPM 套件。請查看 Oracle JDK 8 下載頁面。接下來,在您的系統上下載 RPM 套件。
要在 Fedora 上安裝 RPM 套件,請執行以下命令:
|
1 |
sudo rpm --Uvh --nodeps ./jdk-8u291-linux-x64.rpm |
要在 CentOS 上安裝它,請執行以下命令:
|
1 |
sudo yum localinstall jdk-8u291-linux-x64.rpm |
-
安裝 OpenJDK
OpenJDK 16
OpenJDK 套件可直接從官方套件伺服器取得。您只需要告訴套件管理員安裝該套件即可。在 CentOS 和 Fedora 上,OpenJDK 16 均可作為以下套件取得: java-16-openjdk-devel.
在 CentOS 上安裝 OpenJDK 16:
|
1 |
sudo yum install java-16-openjdk-devel |
在 Fedora 上安裝 OpenJDK 16:
|
1 |
sudo dnf install java-16-openjdk-devel |
OpenJDK 11
在 CentOS 和 Fedora 上,OpenJDK 11 均可作為以下套件取得: java-11-openjdk-devel.
在 CentOS 上安裝 OpenJDK 11:
|
1 |
sudo yum install java-11-openjdk-devel |

在 Fedora 上安裝 OpenJDK 11:
|
1 |
sudo dnf install java-11-openjdk-devel |
OpenJDK 8
幸好,OpenJDK 8 也可以直接從官方套件伺服器取得。在 CentOS 和 Fedora 中,OpenJDK 套件被標記為: java-1.8.0-openjdk-devel.
在 Fedora 上安裝 OpenJDK 8:
|
1 |
sudo dnf install java-1.8.0-openjdk-devel |
在 CentOS 上安裝 OpenJDK 8:
|
1 |
sudo yum install java-1.8.0-openjdk-devel |
OpenJDK 版本
OpenJDK 版本對於個人和企業/公司用戶來說都是一個有趣的選擇。其中許多版本免費為各種 Java 版本提供長期支援。
- 安裝 AdoptOpenJDK
AdoptOpenJDK 是另一個非常受歡迎的 OpenJDK 版本。所有 OpenJDK 建置版本都是免費提供的。這是一個由 Java 開發人員和廠商(Amazon、IBM、Azul、Microsoft、Red Hat 等)共同推動的專案。AdoptOpenJDK 二進位檔案提供社群和商業支援。
要安裝 AdoptOpenJDK,我們將利用第三方儲存庫,該儲存庫為 Debian/Ubuntu、CentOS/RHEL/Fedora 和 openSUSE/SLES 提供預先建置的 DEB 和 RPM 套件。本文簡要介紹了該儲存庫和可用套件:AdoptOpenJDK — RPM 和 DEB 檔案.
首先,我們需要安裝第三方儲存庫。這比本指南中介紹的其他方法稍微複雜一些。簡而言之,我們必須手動建立儲存庫項目。建立一個新的儲存庫 adoptopenjdk.repo。請note,您必須以 root 使用者身分執行該命令:
|
1 |
cat <<EOF > /etc/yum.repos.d/adoptopenjdk.repo |
之後,輸入以下程式碼。根據您的 CentOS 版本,相應地更新 baseurl 項目:
|
1 2 3 4 5 6 7 |
[AdoptOpenJDK] name=AdoptOpenJDK baseurl=https://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/$(uname -m) enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public EOF |

在 Fedora 上,請改為輸入以下程式碼。根據 Fedora 版本,相應地更新 baseurl 項目。別忘了以 root 身分執行該命令:
|
1 |
cat <<EOF > /etc/yum.repos.d/adoptopenjdk.repo |
|
1 2 3 4 5 6 7 |
[AdoptOpenJDK] name=AdoptOpenJDK baseurl=https://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/fedora/33/$(uname -m) enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public EOF |

儲存庫現在已配置完成。接下來,檢查 YUM/DNF 是否偵測到新的儲存庫:
|
1 |
sudo yum repolist |

|
1 |
sudo dnf repolist |

現在,我們可以安裝 AdoptOpenJDK 套件。查看所有可用的套件:
|
1 |
yum search adoptopenjdk |
|
1 |
dnf search adoptopenjdk |
要在 Fedora 上安裝 AdoptOpenJDK 11 (hotspot),請執行以下命令:
|
1 |
sudo dnf install adoptopenjdk-11-hotspot |

要在 CentOS 上安裝 AdoptOpenJDK 11 (hotspot),請執行以下命令:
|
1 |
sudo yum install adoptopenjdk-11-hotspot |
測試安裝
安裝好您選擇的 JDK 後,進行簡短的測試以驗證安裝是否正常運作:
|
1 |
java -version |
|
1 |
javac -version |

設定預設 Java
如果您的系統安裝了多個 JDK,可能會導致衝突。為了避免產生問題,您應該將其中一個設定為預設 JDK。我們可以使用 alternatives 命令。某些程式需要額外配置環境變數來確定 JDK 的位置。
-
使用 alternatives
在 CentOS/Fedora 上, alternatives 命令透過符號連結來管理預設命令。在 Java 的情況下,這非常有用。要變更預設 Java,請執行以下 alternatives 命令:
|
1 |
sudo alternatives --config java |

在輸出中,alternatives 將列出所有已安裝的 Java。輸入您偏好的 Java 安裝的 Selection 值,將其設定為預設值。
-
環境變數
有幾個專門用於 Java 的環境變數。這些變數宣告了 Java 可執行檔的位置。最常用的環境變數是 JAVA_HOME。它的值是 Java 安裝目錄的完整路徑。設定環境變數:
|
1 |
export JAVA_HOME=<java_path> |

若要設定 JAVA_HOME 給系統中的所有使用者,您必須在 /etc/environment:
|
1 |
sudo sh -c "echo export JAVA_HOME=<java_path> >> /etc/environment" |
結語
本指南示範了如何在 CentOS 和 Fedora 上安裝 Java。我們也介紹了各種 Java 版本,以便您選擇最適合您需求的 JDK。
Java 是一種強大的程式語言。它是少數將跨平台開發放在首位的程式設計環境之一。幾乎任何 Java 程式都可以在任何其他支援的平台上執行。作為開發人員,您無需擔心平台相容性問題。作為使用者,您可以放心,所需的應用程式將在您的系統上執行。
如果您想改為在 Ubuntu 上安裝 Java,請參考此教學課程.
祝您使用愉快!





留言
目前尚無留言。成為第一個留言的人吧。