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

介绍

Java和JVM(Java的虚拟机)是许多软件所必需的,包括TomcatJettyGlassfishCassandraJenkins

在本指南中,您将使用apt安装各种版本的Java Runtime Environment(JRE)和Java Developer Kit(JDK)。您将安装OpenJDK以及Oracle的官方软件包。然后,您将选择要用于项目的版本。完成后,您将能够使用JDK开发软件或使用Java Runtime运行软件。

准备

要学习本教程,您需要:

安装默认JRE / JDK

安装Java的最简单方法是使用Debian打包的版本。默认情况下,Debian 9包含Open JDK,它是JRE和JDK的开源变体。

该软件包将安装OpenJDK 1.8版,该版本与Java 8兼容.Java 8是当前的长期支持版本,并且仍然得到广泛支持,但公共维护在2019年1月结束。

要安装此版本,请先更新软件包索引:

sudo apt update

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

java -version

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

-bash: java: command not found

执行以下命令安装OpenJDK:

sudo apt install default-jre

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

验证安装:

java -version

您将看到以下输出:

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

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

sudo apt install default-jdk

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

javac -version

您将看到以下输出:

javac 1.8.0_181

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

安装Oracle JDK

如果要安装Oracle JDK(Oracle分发的正式版),则需要为要使用的版本添加新的软件包存储库。

首先,安装software-properties-common包,该包添加了您将用于将其他存储库添加到源列表的apt-get-repository命令。

使用以下命令安装software-properties-common

sudo apt install software-properties-common

安装完成后,您可以安装Oracle的Java。

安装Oracle Java 8

要安装Java 8(当前的长期支持版本),首先要添加其软件包存储库:

sudo add-apt-repository ppa:webupd8team/java

添加存储库时,您将看到如下消息:

 Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK8). There are no actual Java files in this PPA.
​
Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html
​
Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
​
The PPA supports Ubuntu 18.04, 17.10, 16.04, 14.04 and 12.04.
​
More info (and Ubuntu installation instructions):
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
​
Debian installation instructions:
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
​
For Oracle Java 10, see a different PPA: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
 More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it

ENTER继续。它将尝试导入一些GPG签名密钥,但它将无法找到任何有效的密钥:

gpg: keybox '/tmp/tmpgt9wdvth/pubring.gpg' created
gpg: /tmp/tmpgt9wdvth/trustdb.gpg: trustdb created
gpg: key C2518248EEA14886: public key "Launchpad VLC" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no valid OpenPGP data found.

执行以下命令以手动添加存储库源的GPG密钥:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2518248EEA14886

然后更新您的包列表:

sudo apt update

包列表更新后,安装Java 8:

sudo apt install oracle-java8-installer

您的系统将从Oracle下载JDK并要求您接受许可协议。接受协议,JDK将安装。

安装Oracle Java 10

要安装Oracle Java 10,首先要添加其存储库:

sudo add-apt-repository ppa:linuxuprising/java

你会看到这个消息:

 Oracle Java 10 installer
​
Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java 10 (JDK 10), 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/
​
Issues or suggestions? Leave a comment here: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
 More info: https://launchpad.net/~linuxuprising/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it

ENTER继续安装。与Java 8一样,您将看到有关无效签名密钥的消息:

Outputgpg: keybox '/tmp/tmpvuqsh9ui/pubring.gpg' created
gpg: /tmp/tmpvuqsh9ui/trustdb.gpg: trustdb created
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no valid OpenPGP data found.

执行此命令以导入必要的密钥:

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

然后更新您的包列表:

sudo apt update

包列表更新后,安装Java 10:

sudo apt install oracle-java10-installer

您的系统将从Oracle下载JDK并要求您接受许可协议。接受协议,JDK将安装。

现在让我们看看如何选择要使用的Java版本。

管理Java

您可以在一台服务器上安装多个Java。您可以使用update-alternatives命令配置在命令行上使用的默认版本。

sudo update-alternatives --config java

如果您在本教程中安装了所有版本的Java,那么这就是输出的样子:

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

选择与Java版本关联的编号以将其用作默认编号,或按ENTER以保留当前设置。

您可以对其他Java命令执行此操作,例如compiler(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-10-oracle/bin/java             1091      auto mode
* 1            /usr/lib/jvm/java-10-oracle/bin/java             1091      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode

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

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

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

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

sudo nano /etc/environment

在此文件的末尾,添加以下行,确保使用您自己复制的路径替换突出显示的路径:

JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"

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

保存文件并退出编辑器。

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

source /etc/environment

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

echo $JAVA_HOME

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

/usr/lib/jvm/java-8-oracle/jre

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

结论

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

想要了解更多关于使用Apt安装Java的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How To Install Java with Apt on Debian 9》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏惨绿少年

KICKSTART无人值守安装

1.1 环境说明 [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [roo...

2850
来自专栏喵了个咪的博客空间

Otter-入门篇2(Manager安装配置)

Otter-入门篇2(Manager安装配置) ? 前言 上一节已经简单介绍了Otter的基本信息,本节我们就来开准备搭建一个我们自己的Otter环境,因为一个...

41411
来自专栏散尽浮华

SCP和Rsync远程拷贝的几个技巧

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加...

1.3K7
来自专栏Java进阶架构师

01: springboot快速入门之三分钟构建可运行项目

Spring Boot英文中是“引导”的意思,是用来简化Spring应用的搭建到开发的过程。可以这么说。SpringBoot是一个服务于框架的框架,服务范围是简...

743
来自专栏Seebug漏洞平台

GNU tar 解压路径绕过漏洞(CVE-2016-6321) 分析

Author: LG (知道创宇404安全实验室) 漏洞简介 GNU tar文档管理命令是linux系统下常用的一个打包、压缩的命令。经CSS(FSC1V Cy...

3796
来自专栏友弟技术工作室

Python虚拟环境

本教程将引导你完成安装和使用 Python 包。 它将向你展示如何安装和使用必要的工具,并就最佳做法做出强烈推荐。请记住, Python 用于许多不同的目的。准...

63415
来自专栏张伟博客

windows7 下,在CMD命令模式下,如何添加永久路由?

双网卡之间互相访问原理其实很简单,互相设置对方的IP为自己的这张网卡的网关就足够了。为了让机器重启动后依然有效,在使用route 命令添加路由的时候加上 -p ...

1.1K1
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Keepalived和浮动IP设置高可用性HAProxy服务器

高可用性是系统设计的一个功能,允许应用程序在发生故障时自动重启或重新路由工作到另一个有能力的系统。在服务器方面,建立高可用性系统需要一些不同的技术。必须有一个可...

3423
来自专栏搜云库

CentOs7.3 ssh 免密登录

环境 三台虚拟机(IP): 192.168.252.121 192.168.252.122 192.168.252.123 1.修改主机名 修改三台主机名,以此...

3695
来自专栏Fish

安装IDEA和运行SCALA程序

下载与配置IDEA 从官网下载 里面有Ultimate(最终版)和Community(社区版),对于普通的开发者来说,社区版就够了,然后因为我本来配置了JDK...

4119

扫码关注云+社区

领取腾讯云代金券