如何在 Debian 10 上用 Apt 安装 Java

介绍

Java 和 JVM (Java 虚拟机) 需要用于许多类型的软件,包括 Tomcat, Jetty, Glassfish, CassandraJenkins

在本指南中,您将使用 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包索引:

1sudo apt update

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

1java -version

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

1[secondary_label Output]
2-bash: java: command not found

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

1sudo apt install default-jre

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

检查安装与:

1java -version

您将看到以下输出:

1[secondary_label Output]
2openjdk version "11.0.4" 2019-07-16
3OpenJDK Runtime Environment (build 11.0.4+11-post-Debian-1deb10u1)
4OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Debian-1deb10u1, mixed mode, sharing)

您可能还需要 Java 开发套件(JDK)来编译和运行某些特定的基于 Java 的软件。

1sudo apt install default-jdk

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

1javac -version

您将看到以下输出:

1[secondary_label Output]
2javac 11.0.4

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

安装 Oracle JDK

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

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

Oracle Java SE 软件包的下载

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

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

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

the Oracle Java downloads webpage

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

我们将在下一步下载此存储库的安装程序,但暂时请寻找oracle-java11-installer-local...文件:

a screenshot of the linuxuprising java installer package list

在这种情况下,我们可以看到安装程序正在等待版本 11.0.4. 忽略在包版本号(在上面的示例屏幕截图中)中的-字符串后出现的任何数字。

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

a screenshot showing the location of the Oracle JDK download button

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

a screenshot of the Java download options

选择 接受许可协议 广播按钮,然后点击 Linux 的 .tar.gz 包,下载将开始。

在下载完成后,我们需要将下载的文件送到我们的服务器上,我们将使用scp命令来做到这一点,但您可以使用您舒适的任何文件传输软件。

在本地计算机上,使用scp将文件上传到您的服务器上。下面的命令假定您的文件已下载到用户主文件夹中的下载目录,并将其上传到服务器上的sammy目录。

1[environment local]
2scp ~/Downloads/jdk-11.0.4_linux-x64_bin.tar.gz sammy@your_server_ip:~

现在我们已经在我们的服务器上获得了正确的Java软件包,让我们添加包含我们将使用的Java安装程序的Repo。

添加安装程序的 Apt 存储库

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

1sudo apt install software-properties-common

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

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

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

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

你会看到这个消息:

 1[secondary_label Output]
 2 Oracle Java 11 (LTS) and 12 installer for Ubuntu, Linux Mint and Debian.
 3
 4Java 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.
 5
 6The packages in this PPA are based on the WebUpd8 Oracle Java PPA packages: https://launchpad.net/~webupd8team/+archive/ubuntu/java
 7
 8Created for users of https://www.linuxuprising.com/
 9
10Installation instructions (with some tips), feedback, suggestions, bug reports etc.:
11
12. . .
13
14Press [ENTER] to continue or ctrl-c to cancel adding it

按「ENTER」來繼續安裝,您可能會看到「未找到有效 OpenPGP 資料」的訊息。

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

1sudo apt update

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

安装下载的Java软件

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

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

一旦文件副本完成,请通过安装oracle-java11-installer-local包来安装Oracle的Java 11:

1sudo apt install oracle-java11-installer-local

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

现在我们已经安装了多个版本的Java,让我们看看如何选择您想要使用的Java版本。

Java 管理

您可以在一个服务器上进行多个Java安装,您可以使用更新替代命令来配置哪个版本是命令行上使用的默认版本。

1sudo update-alternatives --config java

如果您在本教程中安装了两个版本的Java,输出将是这样的:

 1[secondary_label Output]
 2There are 2 choices for the alternative java (providing /usr/bin/java).
 3
 4  Selection Path Priority Status
 5------------------------------------------------------------
 6  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
 7  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
 8* 2            /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
 9
10Press <enter> to keep the current choice[*], or type selection number:

选择与 Java 版本相关的号码以作为默认使用,或按ENTER,留下当前设置。

对于其他Java命令,例如编译器(‘javac’)可以这样做:

1sudo update-alternatives --config javac

可以执行此命令的其他命令包括但不限于:‘keytool’,‘javadoc’和‘jarsigner’.

接下来我们将环境变量JAVA_HOME设置为下一个。

设置JAVA_HOME环境变量

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

要设置此环境变量,请先确定 Java 安装在何处。

1sudo update-alternatives --config java

这个命令显示了Java的每个安装以及其安装路径:

1[secondary_label Output]
2  Selection Path Priority Status
3------------------------------------------------------------
4  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
5  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
6* 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:

1sudo nano /etc/environment

此檔案可能最初是空的. 在檔案的結尾,添加下列行,確保您用自己的複製路徑取代突出路徑:

1[label /etc/environment]
2JAVA_HOME="/usr/lib/jvm/java-11-oracle/"

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

保存文件并离开编辑器。

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

1source /etc/environment

检查环境变量是否已设置:

1echo $JAVA_HOME

你会看到你刚刚设置的路径:

1[secondary_label Output]
2/usr/lib/jvm/java-11-oracle/

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

结论

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

Published At
Categories with 技术
comments powered by Disqus