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

引言

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

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

Info

使用Silicon Cloud App平台,从GitHub部署你的前端应用程序。让Silicon Cloud专注于扩展你的应用。

前提条件

要按照本教程操作,你需要准备以下材料:

  • One Ubuntu 22.04 server set up by following the the Ubuntu 22.04 initial server setup guide tutorial, including a sudo non-root user and a firewall.

步骤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的开源变种。

要安装OpenJDK版本的Java,请先更新您的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)

为了编译和运行某些特定的基于Java的软件,除了JRE,您可能还需要JDK。要安装JDK,请执行以下命令,它也会同时安装JRE:

  1. sudo apt install default-jdk

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

  1. javac -version

你会看到以下输出结果:

Output
javac 11.0.14

接下来,你将学习如何安装Oracle官方的JDK和JRE。

第二个选项 – 安装Oracle JDK 11

Oracle的Java授权协议不允许通过软件包管理器自动安装。要安装Oracle JDK(由Oracle官方分发的官方版本),您必须创建一个Oracle账号并手动下载要使用的版本的JDK,并添加一个新的软件包存储库。然后,您可以使用apt来借助第三方安装脚本来安装它。Oracle JDK已经包含了JRE,所以您不需要单独安装它。

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

请在以下图示中找到 Jammy 的包裹。

Installer package for Ubuntu 22.04

在此图像中,脚本的版本是11.0.13。在这种情况下,您需要使用Oracle JDK 11.0.13。您的版本号可能会根据安装软件的时间而有所不同。

你不需要从这个页面下载任何内容;你会很快通过apt下载安装脚本。

接下来,访问存档下载,找到与您所需的版本相匹配的那一个。

The Oracle Java archive downloads web page where you can find versions of Java that are not the latest release.

从这个列表中选择 Linux x64 压缩归档 .tar.gz 包。

Linux download

你将会看到一个屏幕要求你接受Oracle的许可协议。选择复选框以接受许可协议并点击下载按钮。下载将会开始。在下载开始之前,你可能需要再次登录你的Oracle账户。

一旦文件下载完毕,你需要将其传输到你的服务器上。在你的本地设备上,将文件上传到服务器上。在 macOS、Linux 或使用 Windows 子系统的 Windows 上,使用 scp 命令将文件传输到 user01 用户的家目录中。下面的命令假设你已经将 Oracle JDK 文件保存在本地设备的 Downloads 文件夹中。

  1. scp Downloads/jdk-11.0.13_linux-x64_bin.tar.gz user01@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版本。

第二步 — 管理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版本相关的数字以将其作为默认版本,或按回车键保留当前设置。

你可以对其他Java命令也执行类似操作,比如编译器(javac)。

  1. sudo update-alternatives --config javac

此命令可用于运行其他命令,包括但不限于:keytool、javadoc和jarsigner。

步骤三 — 配置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:

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

    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。

  1. sudo nano /etc/environment

在该文件的末尾添加以下行,请确保将高亮路径替换为您自己复制的路径,并且不包括路径中的bin/部分。

/etc/environment –> /etc/environment 文件
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

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

保存文件并退出编辑器。

现在重新加载该文件,以应用更改到您当前的会话中。

  1. source /etc/environment

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

  1. echo $JAVA_HOME

你会看到你刚刚设定的路径。 (Nǐ huì kàn dào nǐ gānggāng shèdìng de lùjìng.)

Output
/usr/lib/jvm/java-11-openjdk-amd64

其他用户需要执行命令source /etc/environment或者退出并重新登录以应用此设置。

结论

在这个教程中,你安装了多个版本的Java并学会了如何管理它们。现在你可以安装在Java上运行的软件,比如Tomcat,Jetty,Glassfish,Cassandra或Jenkins。

发表回复 0

Your email address will not be published. Required fields are marked *