介绍
Java和JVM(Java的虚拟机)需要许多类型的软件,包括 Tomcat, Jetty, Glassfish, Cassandra和 Jenkins。
在本指南中,您将使用apt
安装Java Runtime Environment(JRE)和Java Developer Kit(JDK)的各种版本,您将安装OpenJDK以及来自Oracle的官方软件包,然后选择您希望为您的项目使用的版本。
前提条件
要遵循本教程,您将需要:
- 一个 Debian 9 服务器通过遵循 Debian 9 初始服务器安装指南的教程设置,包括一个非根用户与
sudo
访问和防火墙。
安装默认 JRE/JDK
安装Java的最简单的选择是使用与Debian包装的版本。默认情况下,Debian 9包含Open JDK,它是JRE和JDK的开源变体。
此套件将安装 OpenJDK 版本 1.8,它与 Java 8 兼容。Java 8 是当前的长期支持版本,并且仍然得到广泛的支持,尽管公共维护将于 2019 年 1 月结束。
要安装此版本,请先更新包索引:
1sudo apt update
接下来,检查是否已经安装了Java:
1java -version
如果 Java 尚未安装,您将看到以下输出:
1[secondary_label Output]
2-bash: java: command not found
运行以下命令来安装 OpenJDK:
1sudo apt install default-jre
此命令将安装Java Runtime Environment(JRE),允许您运行几乎所有Java软件。
检查安装与:
1java -version
您将看到以下输出:
1[secondary_label Output]
2openjdk version "1.8.0_181"
3OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1~deb9u1-b13)
4OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
除了 JRE 之外,您可能还需要 Java 开发套件 (JDK) 来编译和运行某些特定的基于 Java 的软件。
1sudo apt install default-jdk
通过检查 Java 编译器「javac」的版本来验证 JDK 是否已安装:
1javac -version
您将看到以下输出:
1[secondary_label Output]
2javac 1.8.0_181
接下来,让我们看看如何安装Oracle的官方JDK和JRE。
安装 Oracle JDK
如果您想安装 Oracle JDK,这是 Oracle 发行的官方版本,则需要为您想要使用的版本添加一个新的包库。
首先,安装software-properties-common
包,该包添加了apt-get-repository
命令,您将使用该命令将额外的仓库添加到您的源列表中。
安装software-properties-common
与:
1sudo apt install software-properties-common
有了这个安装,你可以安装Oracle的Java。
安装 Oracle Java 8
要安装当前的长期支持版本的Java 8,先添加其包库:
1sudo add-apt-repository ppa:webupd8team/java
当您添加存储库时,您将看到这样的消息:
1[secondary_label output]
2 Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK8). There are no actual Java files in this PPA.
3
4Important -> 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
5
6Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
7
8The PPA supports Ubuntu 18.04, 17.10, 16.04, 14.04 and 12.04.
9
10More info (and Ubuntu installation instructions):
11- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
12
13Debian installation instructions:
14- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html
15
16For Oracle Java 10, see a different PPA: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
17 More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
18Press [ENTER] to continue or ctrl-c to cancel adding it
它会尝试导入一些 GPG 签名密钥,但无法找到任何有效的密钥:
1[secondary_label Output]
2gpg: keybox '/tmp/tmpgt9wdvth/pubring.gpg' created
3gpg: /tmp/tmpgt9wdvth/trustdb.gpg: trustdb created
4gpg: key C2518248EEA14886: public key "Launchpad VLC" imported
5gpg: no ultimately trusted keys found
6gpg: Total number processed: 1
7gpg: imported: 1
8gpg: no valid OpenPGP data found.
执行以下命令以手动添加存储源的 GPG 密钥:
1apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C2518248EEA14886
然后更新您的包列表:
1sudo apt update
更新包列表后,安装 Java 8:
1sudo apt install oracle-java8-installer
您的系统将从 Oracle 下载 JDK,并要求您接受许可协议。
安装 Oracle Java 10
要安装Oracle Java 10,首先添加其存储库:
1sudo add-apt-repository ppa:linuxuprising/java
你会看到这个消息:
1[secondary_label Output]
2 Oracle Java 10 installer
3
4Java 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.
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
10Issues or suggestions? Leave a comment here: https://www.linuxuprising.com/2018/04/install-oracle-java-10-in-ubuntu-or.html
11 More info: https://launchpad.net/~linuxuprising/+archive/ubuntu/java
12Press [ENTER] to continue or ctrl-c to cancel adding it
如同Java 8一样,你会看到关于无效签名密钥的消息:
1[secondary_label Output]
2gpg: keybox '/tmp/tmpvuqsh9ui/pubring.gpg' created
3gpg: /tmp/tmpvuqsh9ui/trustdb.gpg: trustdb created
4gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
5gpg: Total number processed: 1
6gpg: imported: 1
7gpg: no valid OpenPGP data found.
执行此命令来导入所需的密钥:
1sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
然后更新您的包列表:
1sudo apt update
更新包列表后,安装 Java 10:
1sudo apt install oracle-java10-installer
您的系统将从 Oracle 下载 JDK,并要求您接受许可协议。
现在让我们看看如何选择您想要使用的Java版本。
Java 管理
您可以在一个服务器上进行多个Java安装,您可以使用更新替代
命令来配置哪个版本是命令行上使用的默认版本。
1sudo update-alternatives --config java
如果你在本教程中安装了所有版本的Java,输出将是这样的:
1[secondary_label Output]
2There are 3 choices for the alternative java (providing /usr/bin/java).
3
4 Selection Path Priority Status
5------------------------------------------------------------
6 0 /usr/lib/jvm/java-10-oracle/bin/java 1091 auto mode
7* 1 /usr/lib/jvm/java-10-oracle/bin/java 1091 manual mode
8 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
9 3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
10
11Press <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-10-oracle/bin/java 1091 auto mode
5* 1 /usr/lib/jvm/java-10-oracle/bin/java 1091 manual mode
6 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
7 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
:
1sudo nano /etc/environment
在此文件的末尾,添加下列行,确保您用自己的复制路径来替换突出的路径:
1[label /etc/environment]
2JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"
修改此文件将为您的系统上的所有用户设置JAVA_HOME
路径。
保存文件并离开编辑器。
现在重新加载此文件以将更改应用到当前会话中:
1source /etc/environment
检查环境变量是否已设置:
1echo $JAVA_HOME
你会看到你刚刚设置的路径:
1[secondary_label Output]
2/usr/lib/jvm/java-8-oracle/jre
其他用户需要执行命令 source /etc/environment
或退出并重新登录以应用此设置。
结论
在本教程中,您安装了多个版本的Java,并学会了如何管理它们,现在您可以安装运行在Java上的软件,如Tomcat,Jetty,Glassfish,Cassandra或Jenkins。