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

作者选择了开放互联网/言论自由基金来接收 100 美元的捐款,作为Write for DOnations计划的一部分。

介绍

许多软件都需要 Java 和 JVM(Java 的虚拟机),包括TomcatJettyGlassfishCassandraJenkins

在本指南中,您将使用apt. 您将安装 OpenJDK 以及来自 Oracle 的官方软件包。然后,您将选择要用于项目的版本。完成后,您将能够使用 JDK 开发软件或使用 Java Runtime 运行软件。

先决条件

要学习本教程,您需要:

安装默认的 JRE/JDK

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

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

  • sudo apt update

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

  • java -version

如果当前未安装 Java,您将看到以下输出:

Output
Command 'java' not found, but can be installed with: apt install default-jre apt install openjdk-11-jre-headless apt install openjdk-8-jre-headless

执行以下命令以安装默认的 Java 运行时环境 (JRE),这将从 OpenJDK 11 安装 JRE:

  • sudo apt install default-jre

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

使用以下命令验证安装:

  • java -version

您将看到以下输出:

Output
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)

除了 JRE 之外,您可能还需要 Java Development Kit (JDK) 来编译和运行某些特定的基于 Java 的软件。要安装 JDK,请执行以下命令,该命令还将安装 JRE:

  • sudo apt install default-jdk

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

  • javac -version

您将看到以下输出:

Output
javac 11.0.7

接下来我们看看如何安装Oracle官方的JDK和JRE。

安装 Oracle JDK 11

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

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

找到Bionic的包,如下图所示:

Ubuntu 18.04 安装包

在这张图片中,脚本的版本是11.0.7. 在这种情况下,您将需要 Oracle JDK 11.0.7。你不需要从这个页面下载任何东西;您将很快下载安装脚本apt

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

甲骨文 Java 11

单击JDK 下载按钮,您将进入显示可用版本的屏幕。单击.tar.gz适用于 Linux软件包。

Linux下载

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

下载文件后,您需要将其传输到您的服务器。在您的本地机器上,将文件上传到您的服务器。在 macOS、Linux 或使用Windows Subsystem for LinuxWindows 上,使用该scp命令将文件传输到sammy用户的主目录以下命令假定您已将 Oracle JDK 文件保存到本地计算机的Downloads文件夹中:

  • scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~

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

安装software-properties-common软件包,它将add-apt-repository命令添加到您的系统中:

  • sudo apt install software-properties-common

接下来,导入用于验证您将要安装的软件的签名密钥:

  • sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A

你会看到这个输出:

Output
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported gpg: Total number processed: 1 gpg: imported: 1

然后使用add-apt-repository命令将 repo 添加到您的包源列表中:

  • sudo add-apt-repository ppa:linuxuprising/java

你会看到这条消息:

Output
Oracle Java 11 (LTS) and 12 installer for Ubuntu, Linux Mint and Debian. Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 11, so a working Internet connection is required. The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java Created for users of https://www.linuxuprising.com/ Installation instructions (with some tips), feedback, suggestions, bug reports etc.: . . . Press [ENTER] to continue or ctrl-c to cancel adding it

ENTER继续安装。您可能会看到一条关于 的消息no valid OpenPGP data found,但您可以放心地忽略它。

更新您的软件包列表以使新软件可供安装:

  • 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.7_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 的两个版本,则输出将如下所示:

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

选择与 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 的每个安装及其安装路径:

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.

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

  • 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。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁