如何在Ubuntu22.04上使用Apt安装Java

来自菜鸟教程
跳转至:导航、​搜索

介绍

很多软件都需要 Java 和 JVM(Java 的虚拟机),包括 TomcatJettyGlassfishCassandra詹金斯

在本指南中,您将使用 apt 安装各种版本的 Java Runtime Environment (JRE) 和 Java Developer Kit (JDK)。 您将安装 OpenJDK 以及 Oracle 的官方 JDK。 然后,您将选择要用于项目的版本。 完成后,您将能够使用 JDK 开发软件或使用 Java Runtime 运行软件。

先决条件

要遵循本教程,您将需要:

安装默认 JRE/JDK

安装 Java 最简单的选择是使用与 Ubuntu 一起打包的版本。 默认情况下,Ubuntu 22.04 包含 Open JDK 11,它是 JRE 和 JDK 的开源变体。

要安装这个版本,首先更新包索引:

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

执行以下命令安装默认的 Java 运行时环境 (JRE),它将从 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 之外,您可能还需要 Java 开发工具包 (JDK) 才能编译和运行一些特定的基于 Java 的软件。 要安装 JDK,请执行以下命令,该命令还将安装 JRE:

sudo apt install default-jdk

通过检查 Java 编译器 javac 的版本来验证是否安装了 JDK:

javac -version

您将看到以下输出:

Outputjavac 11.0.14

接下来,您将了解如何安装 Oracle 的官方 JDK 和 JRE。

安装 Oracle JDK 11

Oracle 的 Java 许可协议不允许通过包管理器进行自动安装。 要安装 Oracle JDK,这是 Oracle 分发的正式版本,您必须创建一个 Oracle 帐户并手动下载 JDK 以添加您要使用的版本的新包存储库。 然后您可以使用 apt第三方安装脚本 的帮助下安装它。

您需要下载的 Oracle JDK 版本必须与安装程序脚本的版本相匹配。 要了解您需要的版本,请访问 oracle-java11-installer 页面。

找到Jammy的包,如下图:

在此图像中,脚本的版本是 11.0.13。 在这种情况下,您需要 Oracle JDK 11.0.13。 您的版本号可能因您安装软件的时间而异。

您无需从此页面下载任何内容; 稍后您将通过 apt 下载安装脚本。

然后访问 下载页面 并找到与您需要的版本匹配的版本。

如果您需要的版本不是最新版本,您可以在 存档下载 中找到它。 单击 Linux 的 .tar.gz 包。

您将看到一个屏幕,要求您接受 Oracle 许可协议。 选中复选框以接受许可协议,然后按 下载 按钮。 您的下载将开始。 在开始下载之前,您可能需要再次登录您的 Oracle 帐户。

文件下载后,您需要将其传输到您的服务器。 在您的本地计算机上,将文件上传到您的服务器。 在使用 Windows Subsystem for Linux 的 macOS、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

安装程序将查找您在 /var/cache/oracle-jdk11-installer-local 中下载的 Oracle JDK。 创建此目录并将 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 版本。

管理 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

可以运行此命令的其他命令包括但不限于:keytooljavadocjarsigner

设置 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:

在这种情况下,安装路径如下:

  1. OpenJDK 11 位于 /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
  2. Oracle Java 位于 /usr/lib/jvm/java-11-oracle/jre/bin/java

从您的首选安装中复制路径。 然后使用 nano 或您喜欢的文本编辑器打开 /etc/environment

sudo nano /etc/environment

在此文件的末尾,添加以下行,确保将突出显示的路径替换为您自己复制的路径,但 不要 包含路径的 bin/ 部分:

/etc/环境

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。