介紹
Java 和 JVM(Java 虛擬機)是許多類型軟件所必需的,包括 Tomcat、Jetty、Glassfish、Cassandra 和 Jenkins。
在本指南中,您將使用 apt
安裝各種版本的 Java Runtime Environment(JRE)和 Java Developer Kit(JDK)。您將安裝 OpenJDK 以及來自 Oracle 的官方 JDK。然後,您將選擇您希望用於您的項目的版本。完成後,您將能夠使用 JDK 開發軟件或使用 Java Runtime 運行軟件。
使用 DigitalOcean App Platform 從 GitHub 部署您的前端應用程序。讓 DigitalOcean 專注於擴展您的應用程序。
先決條件
要按照本教程進行操作,您需要:
- 一個Ubuntu 22.04伺服器是按照Ubuntu 22.04初始伺服器設置指南教程設置的,包括一個使用sudo的非root用戶和一個防火牆。
步驟1 — 安裝Java
Java的安裝包括兩個主要組件。JDK提供了開發Java所需的基本軟件工具,如編譯器和調試器。JRE用於實際執行Java程序。此外,有兩種主要的Java安裝選項可供選擇。OpenJDK是Java的開源實現,並與Ubuntu捆綁在一起。Oracle JDK是Java的原始版本,由Java的開發人員Oracle全面維護。
這兩個版本都得到了Oracle的官方認可。兩者都是由Oracle開發的,但由於其開源性質,OpenJDK增加了社區貢獻。然而,從Java 11開始,這兩個選項現在在功能上是相同的詳細信息請參見Oracle。安裝哪個版本取決於您的情況適當的許可證。此外,OpenJDK有選擇單獨安裝JRE的選項,而OracleJDK則捆綁了其JRE。
選項1 — 安裝預設的JRE/JDK
安裝Java的一種選擇是使用隨Ubuntu打包的版本。預設情況下,Ubuntu 22.04包含Open JDK 11,這是JRE和JDK的開源變體。
要安裝Java的OpenJDK版本,首先更新您的apt
套件索引:
- sudo apt update
接下來,檢查Java是否已安裝:
- java -version
如果尚未安裝Java,您將收到以下輸出:
OutputCommand 'java' not found, but can be installed with:
sudo apt install default-jre # version 2:1.11-72build1, or
sudo apt install openjdk-11-jre-headless # version 11.0.14+9-0ubuntu2
sudo apt install openjdk-17-jre-headless # version 17.0.2+8-1
sudo apt install openjdk-18-jre-headless # version 18~36ea-1
sudo apt install openjdk-8-jre-headless # version 8u312-b07-0ubuntu1
執行以下命令以安裝來自OpenJDK 11的JRE:
- sudo apt install default-jre
JRE將允許您運行幾乎所有Java軟件。
使用以下命令驗證安裝:
- java -version
您將收到類似以下的輸出:
Outputopenjdk version "11.0.14" 2022-01-18
OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2)
OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2, mixed mode, sharing)
除了JRE外,您可能還需要JDK來編譯和運行某些特定的基於Java的軟件。要安裝JDK,請執行以下命令,這也將安裝JRE:
- sudo apt install default-jdk
通過檢查Java編譯器javac
的版本來驗證JDK是否已安裝:
- javac -version
您將看到以下輸出:
Outputjavac 11.0.14
接下來,您將學習如何安裝Oracle的官方JDK和JRE。
選擇 2 — 安裝 Oracle JDK 11
Oracle 對於 Java 的許可協議不允許通過套件管理器進行自動安裝。要安裝由 Oracle 官方發行的 Oracle JDK,您必須 創建一個 Oracle 帳戶,並手動下載 JDK 以添加一個新的套件存儲庫,以供您想使用的版本。然後,您可以使用 apt
來通過一個 第三方安裝腳本 來安裝它。Oracle JDK 包含了 JRE,因此您無需另外安裝它。
您需要下載的 Oracle JDK 版本必須與安裝腳本的版本相匹配。要找出您需要的版本,請訪問 oracle-java11-installer
頁面。
找到 Jammy 的套件,如下圖所示:
在此圖像中,腳本版本為 11.0.13
。在這種情況下,您需要的是 Oracle JDK 11.0.13。您的版本號可能會根據安裝軟件的時間而有所不同。
您無需從此頁面下載任何內容;您將很快通過 apt
下載安裝腳本。
接下來,訪問 存檔下載 並找到符合您所需版本的版本。
從這個清單中,選擇 Linux x64 壓縮檔 .tar.gz
套件:
您將看到一個畫面,詢問您是否接受 Oracle 授權協議。勾選方塊以接受授權協議,然後按下 下載 按鈕。下載將開始。在下載開始之前,您可能需要再次登錄您的 Oracle 帳戶。
檔案下載完成後,您需要將其傳輸到您的伺服器上。在本地機器上,將檔案上傳到您的伺服器上。在 macOS、Linux 或使用 Windows 子系統用於 Linux 的 Windows 上,使用 scp
命令將檔案傳輸到您的 sammy
用戶的主目錄。下面的命令假設您已將 Oracle JDK 檔案保存到本機機器的 Downloads
文件夾中:
- scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz sammy@your_server_ip:~
檔案上傳完成後,返回到您的伺服器並添加第三方存儲庫,這將幫助您安裝 Oracle 的 Java。
首先,導入用於驗證即將安裝的軟體的簽名金鑰:
- sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
您將看到此輸出:
Outputgpg: keybox '/usr/share/keyrings/oracle-jdk11-installer.gpg' created
gpg: /tmp/trustdb.gpg: trustdb created
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg: imported: 1
接下來,將存儲庫添加到您的套件來源清單中:
- echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-jdk11-installer.gpg] https://ppa.launchpadcontent.net/linuxuprising/java/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/oracle-jdk11-installer.list > /dev/null
更新您的套件清單,以使新軟體可供安裝:
- sudo apt update
安裝程式將在您下載的 Oracle JDK 中尋找的路徑是/var/cache/oracle-jdk11-installer-local
。請建立此目錄並將 Oracle JDK 存檔移到其中:
- sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
- sudo cp jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
最後,安裝套件:
- sudo apt install oracle-java11-installer-local
安裝程式將首先要求您接受 Oracle 授權協議。接受協議,然後安裝程式將提取 Java 套件並安裝它。
現在您將了解如何選擇要使用的 Java 版本。
步驟 2 — 管理 Java
您可以在一台伺服器上安裝多個 Java。您可以使用update-alternatives
命令來配置哪個版本是命令列上的預設版本。
- sudo update-alternatives --config java
如果您在本教程中安裝了兩個 Java 版本,輸出將如下所示:
OutputThere are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
Press <enter> to keep the current choice[*], or type selection number:
選擇與要使用的 Java 版本相關聯的號碼作為預設值,或按ENTER
保留當前設置。
您還可以對其他 Java 命令執行此操作,例如編譯器(javac
):
- sudo update-alternatives --config javac
可運行此命令的其他命令包括,但不限於:keytool
、javadoc
和 jarsigner
。
第三步 — 設置 JAVA_HOME
環境變數
許多使用Java編寫的程序使用 JAVA_HOME
環境變數來確定Java的安裝位置。
為了設置這個環境變數,首先確定Java安裝在哪裡。使用 update-alternatives
命令:
- sudo update-alternatives --config java
這個命令顯示每個Java安裝以及它的安裝路徑:
OutputThere are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
Press <enter> to keep the current choice[*], or type selection number:
在這個例子中,安裝路徑如下:
- OpenJDK 11 位於
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
。 - Oracle Java 位於
/usr/lib/jvm/java-11-oracle/jre/bin/java
。
從您喜歡的安裝中複製路徑。然後使用 nano
或您喜歡的文本編輯器打開 /etc/environment
:
- sudo nano /etc/environment
在這個文件的末尾,添加以下行,請確保替換突顯顯示的路徑為您自己複製的路徑,並且不包括路徑中的 bin/
部分:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
修改此文件將為系統上的所有用戶設置 JAVA_HOME
路徑。
保存文件並退出編輯器。
現在重新加載此文件以應用對當前會話的更改:
- source /etc/environment
驗證環境變數是否已設置:
- echo $JAVA_HOME
您將看到剛剛設置的路徑:
Output/usr/lib/jvm/java-11-openjdk-amd64
其他使用者需要執行命令 source /etc/environment
或登出並重新登入以應用此設置。
結論
在本教程中,您安裝了多個版本的Java並學習了如何管理它們。您現在可以安裝在Java上運行的軟件,如Tomcat、Jetty、Glassfish、Cassandra或Jenkins。
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-22-04