如何在 Linux 上安裝 Java
無論你運行的是哪種操作系統,通常都有幾種安裝應用程序的方法。有時你可能會在應用程序商店中找到一個應用程序,或者使用 Fedora 上的 DNF 或 Mac 上的 Brew 這樣的軟體包管理器進行安裝,而有時你可能會從網站上下載可執行文件或安裝程序。因為 Java 是這麼多流行的應用程序的後端,所以最好了解安裝它的不同方法。好消息是你有很多選擇,本文涵蓋了所有這些內容。
壞消息是 Java 太大,我說的不僅僅是文件大小。Java 是一種開放源代碼語言和規範,這意味著從理論上講,任何人都可以創建它的實現版本。這意味著,在安裝任何東西之前,必須確定要安裝的 Java 發行版。
我需要 JVM 還是 JRE 或者 JDK?
Java 大致分為兩個下載類別。 Java 虛擬機 (JVM)是運行時組件;它是使 Java 應用程序能夠在計算機上啟動和運行的「引擎」。它包含在 Java 運行時環境 (JRE)中。
Java 開發工具包 (JDK)是一個開發工具包:你可以將其視為一個車庫,修理工可以坐在那裡進行調整、修理和改進。JDK 包含 Java 運行時環境(JRE)。
以下載來說,這意味著:
- 如果你是希望運行 Java 應用程序的用戶,則只需 JRE(包括了 JVM)。
- 如果你是希望使用 Java 進行編程的開發人員,則需要 JDK(包括 JRE 庫,而 JRE 庫又包括 JVM)。 ### OpenJDK、IcedTea 和 OracleJDK 有什麼不同?
當 太陽微系統 被 Oracle 收購時,Java 是該交易的主要部分。幸運的是,Java 是一種開源技術,因此,如果你對 Oracle 維護該項目的方式不滿意,則可以選擇其他方法。Oracle 將專有組件與 Java 下載捆綁在一起,而 OpenJDK 項目是完全開源的。
IcedTea 項目本質上是 OpenJDK,但其目標是使用戶在使用完全自由開源的工具時更容易構建和部署 OpenJDK。
(LCTT 譯註:阿里巴巴也有一個它自己維護的 Open JDK 發行版「 龍井 」。以下引自其官網:「Alibaba Dragonwell 是一款免費的,生產就緒型 Open JDK 發行版,提供長期支持,包括性能增強和安全修復。……Alibaba Dragonwell 作為 Java 應用的基石,支撐了阿里經濟體內所有的 Java 業務。Alibaba Dragonwell 完全兼容 Java SE 標準,……」)
我應該安裝哪個 Java?
如果你對這些選擇感到不知所措,那麼簡單的答案就是你應該安裝的 Java 實現應該是最容易安裝的那個。當應用程序告訴你需要 Java 12,但你的存儲庫中只有 Java 8 時,可以安裝可以從可靠來源中找到的 Java 12 的任何實現。在 Linux 上,你可以一次安裝幾個不同版本的 Java,它們不會互相干擾。
如果你是需要選擇使用哪個版本的開發人員,則應考慮所需的組件。如果選擇 Oracle 的版本,請注意,軟體包中包含專有的插件和字體,可能會影響你分發你的應用程序。在 IcedTea 或 OpenJDK 上進行開發是最安全的。
從存儲庫安裝 OpenJDK?
現在,你已經知道要選擇什麼了,你可以使用軟體包管理器搜索 OpenJDK 或 IcedTea,然後安裝所需的版本。有些發行版使用關鍵字 latest
來指示最新版本,這通常是你要運行的應用程序所需要的。根據你使用的軟體包管理器,你甚至可以考慮使用 grep
過濾搜索結果以僅包括最新版本。例如,在 Fedora 上:
$ sudo dnf search openjdk | grep latest | cut -f1 -d':'
java-latest-openjdk-demo.x86_64
java-openjdk.i686
java-openjdk.x86_64
java-latest-openjdk-jmods.x86_64
java-latest-openjdk-src.x86_64
java-latest-openjdk.x86_64
[...]
只有當你嘗試運行的應用程序堅持要求你使用 Java 的舊版本時,你才應該看看 latest
之前的版本。
在 Fedora 或類似系統上安裝 Java:
$ sudo dnf install java-latest-openjdk
如果你的發行版不使用 latest
標籤,則可以使用其他關鍵字,例如 default
。以下是在 Debian 上搜索 OpenJDK 的信息:
$ sudo apt search openjdk | less
default-jdk
Standard Java development kit
default-jre
Standard Java runtime
openjdk-11-jdk
OpenJDK development kit (JDK)
[...]
在這種情況下,default-jre
軟體包適合用戶,而 default-jdk
則適合開發人員。
例如,要在 Debian 上安裝 JRE:
$ sudo apt install default-jre
現在已安裝好 Java。
你的存儲庫中可能有許多與 Java 相關的軟體包。要搜索 OpenJDK,如果你是用戶,則查找最新的 JRE 或 JVM,如果你是開發人員,則查找最新的 JDK。
從互聯網上安裝 Java
如果在存儲庫中找不到 JRE 或 JDK,或者找不到滿足你需求的 JRE 或 JDK,則可以從互聯網上下載開源的 Java 軟體包。你可以在 openjdk.java.net 中找到需要手動安裝的 tar 形式的 OpenJDK 下載文件,或者可以從 Azul 下載 tar 形式的 Zulu 社區版或其可安裝的 RPM 或 DEB 軟體包。
從 TAR 文件安裝 Java
如果從 Java.net 或 Azul 下載 TAR 文件,則必須手動安裝。這通常稱為「本地」安裝,因為你沒有將 Java 安裝到「全局」位置。你可以在 PATH
中選擇一個合適的位置。
如果你不知道 PATH
中包含什麼,請查看一下以找出:
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/seth/bin
在此示例 PATH
中,位置 /usr/local/bin
和 /home/seth/bin
是不錯的選擇。如果你是計算機上的唯一用戶,那麼你自己的家目錄就很有意義。如果你的計算機上有很多用戶,則最好選擇一個通用位置,例如 /usr/local
或 /opt
。
如果你無權訪問需要 sudo
許可權的 /usr/local
之類的系統級目錄,則可以在你自己的家目錄中創建一個本地 bin
(意思是 「 二進位 」,而不是「 垃圾箱 」)或 Applications
文件夾:
$ mkdir ~/bin
如果它不在你的 PATH
中,請將其添加到其中:
$ echo PATH=$PATH:$HOME/bin >> ~/.bashrc
$ source ~/.bashrc
最後,將壓縮包解壓縮到你選擇的目錄中。
$ tar --extract --file openjdk*linux-x64_bin.tar.gz --directory=$HOME/bin
Java 現在安裝好了。
從 RPM 或 DEB 安裝 Java
如果從 Azul.com 下載 RPM 或 DEB 文件,則可以使用軟體包管理器進行安裝。
對於 Fedora、CentOS、RHEL 等,請下載 RPM 並使用 DNF 進行安裝:
$ sudo dnf install zulu*linux.x86_64.rpm
對於 Debian、Ubuntu、Pop_OS 和類似發行版,請下載 DEB 軟體包並使用 Apt 安裝它:
$ sudo dpkg -i zulu*linux_amd64.deb
Java 現在安裝好了。
用 alternatives 安裝你的 Java 版本
一些應用程序是為特定版本的 Java 開發的,不能與其他任何版本一起使用。這種情況很少見,但確實會發生,在 Linux 上,你可以使用本地安裝方法(請參閱上面「從 TAR 文件安裝 Java」一節)或使用 alternatives
應用程序來解決此衝突。
alternatives
命令會查找 Linux 系統上安裝的應用程序,並讓你選擇要使用的版本。有些發行版,例如 Slackware,不提供 alternatives
命令,因此你必須使用本地安裝方法。在 Fedora、CentOS 和類似的發行版上,該命令是 alternatives
。在 Debian、Ubuntu 和類似的系統上,該命令是 update-alternatives
。
要獲取當前已安裝在 Fedora 系統上的應用程序的可用版本列表:
$ alternatives --list
在 Debian 上,你必須指定可供替代的應用程序:
$ update-alternatives --list java
在 Fedora 上選擇要使系統將哪個版本作為默認版本:
$ sudo alternatives --config java
在 Debian 上:
$ sudo updates-alternatives --config java
你可以根據需要運行的應用程序,根據需要更改默認的 Java 版本。
運行 Java 應用
Java 應用程序通常以 JAR 文件的形式分發。根據你安裝 Java 的方式,你的系統可能已經為運行 Java 應用程序配置好了,這使你只需雙擊應用程序圖標(或從應用程序菜單中選擇它)即可運行。如果必須執行未與系統其餘部分集成的本地 Java 安裝,則可以直接從終端啟動 Java 應用程序:
$ java -jar ~/bin/example.jar &
Java 是個好東西
Java 是少數將跨平台開發放在首位的編程環境之一。沒有什麼比問一個應用程序是否能在你的平台上運行然後發現該應用程序是用 Java 編寫要讓人感到鬆一口氣的了。它是如此簡單,無論你是開發人員還是用戶,你都可以擺脫任何平台上的焦慮。在桌面上擁抱 Java 應用程序,然後在所有桌面上運行它們吧。
via: https://opensource.com/article/19/11/install-java-linux
作者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive