如何在 Linux 上安裝 Java

在桌面上擁抱 Java 應用程序,而後在全部桌面上運行它們。html

不管你運行的是哪一種操做系統,一般都有幾種安裝應用程序的方法。有時你可能會在應用程序商店中找到一個應用程序,或者使用 Fedora 上的 DNF 或 Mac 上的 Brew 這樣的軟件包管理器進行安裝,而有時你可能會從網站上下載可執行文件或安裝程序。由於 Java 是這麼多流行的應用程序的後端,因此最好了解安裝它的不一樣方法。好消息是你有不少選擇,本文涵蓋了全部這些內容。java

壞消息是 Java 太大,我說的不只僅是文件大小。Java 是一種開放源代碼語言和規範,這意味着從理論上講,任何人均可以建立它的實現版本。這意味着,在安裝任何東西以前,必須肯定要安裝的 Java 發行版。linux

我須要 JVM 仍是 JRE 或者 JDK?

Java 大體分爲兩個下載類別。Java 虛擬機Java Virtual Machine(JVM)是運行時組件;它是使 Java 應用程序可以在計算機上啓動和運行的「引擎」。它包含在 Java 運行時環境Java Runtime Environment(JRE)中。git

Java 開發工具包Java Development Kit(JDK)是一個開發工具包:你能夠將其視爲一個車庫,修理工能夠坐在那裏進行調整、修理和改進。JDK 包含 Java 運行時環境(JRE)。github

如下載來講,這意味着:編程

  • 若是你是但願運行 Java 應用程序的用戶,則只需 JRE(包括了 JVM)。
  • 若是你是但願使用 Java 進行編程的開發人員,則須要 JDK(包括 JRE 庫,而 JRE 庫又包括 JVM)。

OpenJDK、IcedTea 和 OracleJDK 有什麼不一樣?

太陽微系統Sun Microsystems被 Oracle 收購時,Java 是該交易的主要部分。幸運的是,Java 是一種開源技術,所以,若是你對 Oracle 維護該項目的方式不滿意,則能夠選擇其餘方法。Oracle 將專有組件與 Java 下載捆綁在一塊兒,而 OpenJDK 項目是徹底開源的。後端

IcedTea 項目本質上是 OpenJDK,但其目標是使用戶在使用徹底自由開源的工具時更容易構建和部署 OpenJDK。安全

(LCTT 譯註:阿里巴巴也有一個它本身維護的 Open JDK 發行版「龍井Dragonwell」。如下引自其官網:「Alibaba Dragonwell 是一款免費的,生產就緒型 Open JDK 發行版,提供長期支持,包括性能加強和安全修復。……Alibaba Dragonwell 做爲 Java 應用的基石,支撐了阿里經濟體內全部的 Java 業務。Alibaba Dragonwell 徹底兼容 Java SE 標準,……」)ruby

我應該安裝哪一個 Java?

若是你對這些選擇感到不知所措,那麼簡單的答案就是你應該安裝的 Java 實現應該是最容易安裝的那個。當應用程序告訴你須要 Java 12,但你的存儲庫中只有 Java 8 時,能夠安裝能夠從可靠來源中找到的 Java 12 的任何實現。在 Linux 上,你能夠一次安裝幾個不一樣版本的 Java,它們不會互相干擾。bash

若是你是須要選擇使用哪一個版本的開發人員,則應考慮所需的組件。若是選擇 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(意思是 「二進制binary」,而不是「垃圾箱waste 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: opensource.com/article/19/…

做者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章
相關標籤/搜索