如何在Debian10上使用Apt安装Java

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

介绍

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

在本指南中,您将使用 Debian 的 apt 包管理系统安装不同版本的 Java Runtime Environment (JRE) 和 Java Developer Kit (JDK)。

您将安装 OpenJDK 11 以及 Oracle 的官方 Java 11 软件。 然后,您将选择要用于项目的版本。 完成后,您将能够使用 JDK 开发软件或使用 Java Runtime 运行软件。

先决条件

要开始本教程,您需要:

安装默认 JRE/JDK

安装 Java 最简单的选择是使用 Debian 打包的版本。 默认情况下,Debian 10 包含 OpenJDK 版本 11,它是 JRE 和 JDK 的开源变体,并且与 Java 11 兼容。

Java 11 是 Java 的当前长期支持版本。

要安装 Java 的 OpenJDK 版本,首先更新您的 apt 包索引:

sudo apt update

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

java -version

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

Output-bash: java: command not found

然后使用 apt install 命令安装 OpenJDK:

sudo apt install default-jre

这将安装 Java 运行时环境 (JRE),允许您运行几乎所有 Java 软件。

使用以下命令验证安装:

java -version

您将看到以下输出:

Outputopenjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1deb10u1, mixed mode, sharing)

您可能还需要 Java 开发工具包 (JDK) 来编译和运行一些特定的基于 Java 的软件。 要安装 JDK,请执行以下命令:

sudo apt install default-jdk

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

javac -version

您将看到以下输出:

Outputjavac 11.0.4

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

安装 Oracle JDK

要安装官方的 Oracle JDK,我们需要直接从 Oracle 下载一些文件,然后使用我们将从第三方存储库获取的安装程序进行安装。

首先,让我们从 Oracle 的网站下载 Java。

下载 Oracle 的 Java SE 软件包

由于最近 Oracle 处理 Java 许可的方式发生了变化,您需要创建一个 Oracle 帐户并直接从他们的网站下载该软件,然后再继续安装。

如果您还没有 Oracle 帐户,请在 Oracle 的帐户创建页面 创建一个。

然后,导航到 Oracle 的 Java SE 下载页面

我们需要确保我们正在下载正确的 Java 版本,因为它需要与安装程序所期望的相匹配。 我们可以通过访问安装程序软件存储库的包列表来检查安装程序需要什么版本。

我们将在下一步从这个存储库下载安装,但现在寻找 oracle-java11-installer-local... 文件:

在这种情况下,我们可以看到安装程序需要 11.0.4 版本。 忽略软件包版本号中 - 连字符后面的任何数字(上面示例屏幕截图中的 1)。

现在我们知道了正确的版本号,向下滚动 Java 下载页面,直到找到正确的版本:

按下下载按钮,您将被带到最后一个屏幕:

选择 Accept License Agreement 单选按钮,然后单击 Linux 的 .tar.gz 包,您的下载将开始。 在开始下载之前,您可能需要再次登录您的 Oracle 帐户。

下载完成后,我们需要将下载的文件放到我们的服务器上。 我们将使用 scp 命令来执行此操作,但您可以使用任何您喜欢的文件传输软件。

在您的本地计算机上,使用 scp 将文件上传到您的服务器。 以下命令假定您的文件下载到用户主文件夹中的 Downloads 目录,并将上传到服务器上的 sammy 用户主目录。 根据系统需要调整文件路径:

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

现在我们已经在我们的服务器上安装了正确的 Java 软件包,让我们添加包含我们将用于安装 Java 的安装程序的存储库。

添加安装程序的 Apt 存储库

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

sudo apt install software-properties-common

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

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

然后我们使用 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

接下来,我们将使用我们刚刚提供的新软件安装 Java 包。

安装下载的 Java 软件

首先,我们需要创建安装程序用来查找Java软件包的特定目录,然后将.tar.gz文件复制到:

sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
sudo cp ~/jdk-11.0.4_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

文件复制完成后,通过安装 oracle-java11-installer-local 包来安装 Oracle 的 Java 11:

sudo apt install oracle-java11-installer-local

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

现在我们已经安装了多个 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_HOME 环境变量

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

要设置此环境变量,首先要确定 Java 的安装位置。 再次使用 update-alternatives 命令:

sudo update-alternatives --config java

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

Output  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

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

  • Oracle Java 11 位于 /usr/lib/jvm/java-11-oracle/bin/java
  • OpenJDK 11 位于 /usr/lib/jvm/java-11-openjdk-amd64/bin/java

这些路径显示 java 可执行文件的路径。

复制您首选安装的路径,不包括尾随的 bin/java 组件。 然后使用 nano 或您喜欢的文本编辑器打开 /etc/environment

sudo nano /etc/environment

此文件最初可能为空白。 在文件末尾,添加以下行,确保将突出显示的路径替换为您自己复制的路径:

/etc/环境

JAVA_HOME="/usr/lib/jvm/java-11-oracle/"

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

保存文件并退出编辑器。

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

source /etc/environment

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

echo $JAVA_HOME

您将看到刚刚设置的路径:

Output/usr/lib/jvm/java-11-oracle/

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

结论

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