如何在 Linux 上手動(dòng)安裝 Java
手動(dòng)安裝可以讓用戶更好的控制 Java 運(yùn)行時(shí)環(huán)境。
使用 Linux 發(fā)行版的軟件包管理工具來(lái)安裝 Java 軟件包 是很容易的。然而,有時(shí)你需要手動(dòng)安裝 Java。這對(duì)基于 Java 的應(yīng)用服務(wù)器(如 Tomcat 或 JBoss)的管理員特別重要。許多開源和專有軟件產(chǎn)品都依賴于這些服務(wù)。
開發(fā)者或運(yùn)行時(shí)套件?
Java 虛擬機(jī)(JVM)以兩種不同的形式提供:Java 開發(fā)工具包(JDK)或 Java 運(yùn)行時(shí)環(huán)境(JRE)。
軟件開發(fā)人員通常需要 JDK。它包含編譯、運(yùn)行和測(cè)試源代碼所需的二進(jìn)制文件。部署一個(gè)預(yù)先建立的 Java 應(yīng)用程序通常只需要 JRE。它不包括編譯器和其他開發(fā)工具。由于安全性的提高和空間的限制,通常在生產(chǎn)環(huán)境中安裝 JRE。
獲取 Java
你可以從網(wǎng)上下載開源的 Java 軟件。你可以在 Red Hat Developer、Adoptium.net 下載 OpenJDK 打包文件,或從 Azul 下載 Zulu 社區(qū)版 。
安裝 Java
設(shè)置一個(gè)目錄來(lái)存放 Java 文件。我喜歡創(chuàng)建一個(gè)簡(jiǎn)單的名為 java
的目錄,這樣我就可以在一個(gè)專門的目錄中下載并解壓打包文件:
$ mkdir -p java/jdk
讓我們?cè)谶@個(gè)例子中使用 JDK。將下載的文件保存到 jdk
目錄下。然后換到該目錄:
$ cd java/jdk
$ ls
OpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz
提取該打包文件。注意,tar
會(huì)創(chuàng)建一個(gè)新的目錄:
$ tar xvzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz
$ ls
jdk-11.0.12+7 OpenJDK11U-jdk_x64_linux_hotspot_11.0.12_7.tar.gz
使用 -version
選項(xiàng)確認(rèn)新 JVM 的版本。
$ cd jdk-11.0.12+7/bin
$ ./java -version
JVM 的版本輸出看起來(lái)類似這樣:
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
環(huán)境變量
為了確保一個(gè)特定的應(yīng)用程序能夠正常工作,它需要確切地知道如何定位 JVM。有兩個(gè)主要的變量需要設(shè)置:JAVA_HOME
和 PATH
。
$ echo $JAVA_HOME
$ echo $PATH
這些可以在用戶的 .bashrc
文件中設(shè)置。確保這些變量出現(xiàn)在 任何設(shè)置 PATH 的現(xiàn)有代碼 之后:
#Set the JAVA_HOME
export JAVA_HOME=~/java/jdk/jdk-11.0.12+7
#Add the JAVA_HOME to the PATH
export PATH="$JAVA_HOME/bin:$PATH"
手動(dòng)安裝的情況
有幾種情況需要手動(dòng)安裝 Java。請(qǐng)考慮以下三種情況:
一種情況可能是要求使用不同的,也許是較早的,在你的 Linux 發(fā)行版的軟件庫(kù)中已經(jīng)沒(méi)有的 Java 版本。
另一個(gè)例子可能是由安全推動(dòng)的決定,即 Java 不會(huì)被默認(rèn)安裝在操作系統(tǒng)上或在“根級(jí)別”上。
第三種情況是可能需要幾個(gè)不同版本的 Java,通常是因?yàn)?J2EE Web 應(yīng)用程序的多個(gè)實(shí)例在同一臺(tái)服務(wù)器上運(yùn)行。由于越來(lái)越多地使用虛擬機(jī)和容器來(lái)隔離進(jìn)程,這種操作系統(tǒng)共享在今天已經(jīng)不太常見了。然而,由于需要維護(hù)不同的容器鏡像,對(duì)手動(dòng)安裝的理解仍然至關(guān)重要。
總結(jié)
我演示了我手動(dòng)安裝 Java 運(yùn)行時(shí)環(huán)境的方式,但你可以制定一個(gè)最適合你需求的慣例。最終,手動(dòng)安裝讓用戶可以更好的控制 Java 運(yùn)行時(shí)環(huán)境。