如何在Debian 10上使用Apt安装Java

许多软件都需要Java和JVM(Java虚拟机),包括Tomcat,Jetty,Glassfish,Cassandra和...

介绍

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

在本指南中,您将使用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的当前长期支持版本。

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

sudo apt update

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

java -version

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

-bash: java: command not found

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

sudo apt install default-jre

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

验证安装:

java -version

您将看到以下输出:

openjdk 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 Development Kit(JDK)来编译和运行某些特定的基于Java的软件。 要安装JDK,请执行以下命令:

sudo apt install default-jdk

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

javac -version

您将看到以下输出:

javac 11.0.4

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

安装Oracle JDK

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

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

下载Oracle的Java SE软件包

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

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

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

Oracle Java下载网页

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

我们将在下一步中从此存储库下载安装,但是现在查找oracle-java11-installer-local...文件:

linuxuprising java安装程序包列表的屏幕截图

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

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

显示Oracle JDK下载按钮位置的屏幕截图

按下载按钮,您将进入最后一个屏幕:

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的安装程序的repo。

添加安装程序的Apt存储库

首先,安装software-properties-common软件包,它将add-apt-repository命令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

你会看到这条消息:

 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,那么这就是输出的样子:

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

sudo update-alternatives --config javac

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

接下来让我们设置JAVA_HOME环境变量。

设置JAVA_HOME环境变量

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

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

sudo update-alternatives --config java

此命令显示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

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

  • 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

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

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

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

结论

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