在本教程中,我们将说明如何在Debian 10 Linux上安装Java(OpenJDK)。

Java是用于构建各种应用程序和系统的最流行的编程语言之一。用Java开发的应用程序具有可伸缩性,灵活性和可维护性。

开始之前

Java有两种不同的实现,OpenJDK和Oracle Java,除了Oracle Java具有一些其他商业功能外,它们几乎没有区别。 Oracle Java 许可证仅允许该软件的非商业使用,例如个人使用和开发使用。

默认的Debian 10存储库包括两个不同的Java软件包:Java Runtime Environment(JRE)和Java Development Kit(JDK)。 JRE包括Java虚拟机(JVM),允许您运行Java程序的类和二进制文件。 Java开发人员应安装JDK,其中包括JRE以及构建Java应用程序所需的开发/调试工具和库。

如果不确定要安装哪个Java软件包,通常的建议是坚持使用默认的OpenJDK(JDK 11)版本。一些基于Java的应用程序可能需要特定版本的Java,因此您应查阅应用程序文档。

安装OpenJDK 11

OpenJDK 11是Java平台的开源实现,是Debian 10 Buster中的默认Java开发和运行时。

以具有[sudo]权限的用户或root用户身份运行以下命令,以更新软件包索引并安装OpenJDK 11 JDK软件包:

sudo apt update sudo apt install default-jdk

安装完成后,您可以通过检查Java版本进行验证:

java -version

输出应如下所示:

openjdk version "11.0.3" 2019-04-16 OpenJDK Runtime Environment (build 11.0.3+7-post-Debian-5) OpenJDK 64-Bit Server VM (build 11.0.3+7-post-Debian-5, mixed mode, sharing)

至此,您已经在Debian系统上成功安装了Java。

JRE包含在JDK软件包中。如果只需要JRE,请安装default-jre软件包。

安装OpenJDK 8

在撰写本文时,以前的Java LTS版本8在官方的Debian Buster存储库中不可用。

我们将启用 AdoptOpenJDK 存储库,该存储库提供了预先构建的OpenJDK软件包。

首先更新软件包列表并安装必要的依赖项,以通过HTTPS 添加新存储库

sudo apt update
sudo apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common

使用以下 wget 命令导入存储库的GPG密钥:

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -

将AdoptOpenJDK APT存储库添加到您的系统:

sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

一旦启用存储库,请更新apt源并使用以下命令安装Java 8:

sudo apt update
sudo apt install adoptopenjdk-8-hotspot

最后,通过检查Java版本来验证安装:

java -version

输出应如下所示:

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b04, mixed mode)

设置默认版本

如果您的Debian系统上安装了多个Java版本,则可以通过键入以下内容来检查将哪个版本设置为默认版本:

java -version

要更改默认版本,请使用update-alternatives命令:

sudo update-alternatives --config 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/adoptopenjdk-8-hotspot-amd64/bin/java   1081      manual mode
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java          1111      manual mode


Press <enter> to keep the current choice[*], or type selection number: 

系统会显示所有已安装的Java版本的列表。输入您要用作默认版本的版本号,然后按Enter

JAVA_HOME环境变量

某些Java应用程序使用JAVA_HOME 环境变量来确定Java安装位置。

要设置JAVA_HOME环境变量,请使用update-alternatives命令查找Java的安装位置:

sudo update-alternatives --config java

在此示例中,安装路径如下:

  • OpenJDK 11位于/usr/lib/jvm/java-11-openjdk-amd64/bin/java
  • OpenJDK 8位于/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java

找到首选Java安装路径后,打开/etc/environment文件:

sudo nano /etc/environment

假设要将JAVA_HOME设置为OpenJDK 11路径,请在文件末尾添加以下行:

/etc/environment

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

要使更改在您当前的Shell上生效,您可以注销并登录或运行以下源命令

source /etc/environment

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

echo $JAVA_HOME

您应该会看到Java安装的路径:

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

/etc/environment是系统范围的配置文件,所有用户都可以使用。如果要基于每个用户设置JAVA_HOME变量,则将该行添加到.bashrc或用户登录时加载的任何其他配置文件中。

卸载Java

您可以像安装 apt 的任何其他软件包一样卸载Java。

例如,要卸载default-jdk软件包,只需运行:

sudo apt remove default-jdk

结论

默认的Debian 10 Buster存储库中提供了OpenJDK的最新LTS版本,并且安装是一项简单明了的任务。

如果您有任何问题,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持