如何在Ubuntu 22.04上使用Apt安装Java

介绍

Java 和 JVM(Java虚拟机)是许多软件所必需的,包括 Tomcat, Jetty, Glassfish, CassandraJenkins

在本指南中,您将使用 apt 安装各种版本的 Java 运行时环境(JRE)和 Java 开发工具包(JDK)。您将安装 OpenJDK 和来自 Oracle 的官方 JDK。然后,您将选择您希望用于项目的版本。完成后,您将能够使用 JDK 开发软件或使用 Java 运行时来运行软件。

使用 DigitalOcean 应用平台 从 GitHub 部署您的前端应用程序。让 DigitalOcean 关注您的应用程序的扩展。

先决条件

要按照本教程操作,您需要:

步骤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软件包索引:

  1. sudo apt update

接下来,检查Java是否已安装:

  1. java -version

如果Java尚未安装,您将收到以下输出:

Output
Command '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:

  1. sudo apt install default-jre

JRE将允许您运行几乎所有Java软件。

使用以下命令验证安装情况:

  1. java -version

您将收到类似以下的输出:

Output
openjdk 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)

您可能需要JDK以及JRE来编译和运行一些特定的基于Java的软件。要安装JDK,请执行以下命令,该命令还会安装JRE:

  1. sudo apt install default-jdk

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

  1. javac -version

您将看到以下输出:

Output
javac 11.0.14

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

选项2 — 安装 Oracle JDK 11

Java的Oracle许可协议不允许通过软件包管理器进行自动安装。要安装由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 Subsystem for Linux的 Windows 上,使用scp命令将文件传输到您的sammy用户的主目录。以下命令假定您已将 Oracle JDK 文件保存到本地计算机的Downloads文件夹中:

  1. scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz sammy@your_server_ip:~

文件上传完成后,返回到您的服务器并添加第三方存储库,这将帮助您安装 Oracle 的 Java。

首先,导入用于验证即将安装的软件的签名密钥:

  1. sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/oracle-jdk11-installer.gpg --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A

您将看到以下输出:

Output
gpg: 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

接下来,将存储库添加到您的软件包源列表中:

  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

更新您的软件包列表,以使新软件可用于安装:

  1. sudo apt update

安装程序将在/var/cache/oracle-jdk11-installer-local中查找您下载的Oracle JDK。创建此目录并将Oracle JDK存档移动到该目录:

  1. sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
  2. sudo cp jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

最后,安装包:

  1. sudo apt install oracle-java11-installer-local

安装程序将首先要求您接受Oracle许可协议。接受协议,然后安装程序将提取Java包并将其安装。

现在,您将学习如何选择要使用的Java版本。

步骤2 — 管理Java

您可以在一台服务器上安装多个Java版本。您可以使用update-alternatives命令配置命令行上要使用的默认版本。

  1. sudo update-alternatives --config java

如果您在本教程中安装了两个Java版本,则输出如下:

Output
There 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):

  1. sudo update-alternatives --config javac

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

步骤 3 — 设置 JAVA_HOME 环境变量

许多使用 Java 编写的程序使用 JAVA_HOME 环境变量来确定 Java 安装位置。

要设置此环境变量,首先确定 Java 安装在何处。使用 update-alternatives 命令:

  1. sudo update-alternatives --config java

此命令显示每个 Java 安装以及其安装路径:

Output
There 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

  1. sudo nano /etc/environment

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

/etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

修改此文件将为系统上的所有用户设置 JAVA_HOME 路径。

保存文件并退出编辑器。

现在重新加载此文件以将更改应用于当前会话:

  1. source /etc/environment

验证环境变量是否已设置:

  1. 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