作者选择了开放互联网/言论自由基金会 ,作为Write for DOnations计划的一部分,获得100美元的捐赠。
介绍
Java和JVM(Java的虚拟机)对于许多种软件都是必需的,包括Tomcat , Jetty , Glassfish , Cassandra和Jenkins 。
在本指南中,您将使用apt
安装各种版本的Java运行时环境(JRE)和Java开发人员工具包(JDK)。 您将安装OpenJDK以及Oracle的官方软件包。 然后,您将选择您希望用于项目的版本。 完成后,您将能够使用JDK开发软件或使用Java运行时来运行软件。
先决条件
要学习本教程,您需要:
- 遵循Ubuntu 18.04初始服务器设置指南教程设置的一台Ubuntu 18.04服务器,其中包括sudo非root用户和防火墙。
安装默认的JRE / JDK
安装Java的最简单方法是使用与Ubuntu一起打包的版本。 默认情况下,Ubuntu 18.04包含Open JDK,它是JRE和JDK的开源版本。
该软件包将安装OpenJDK 10或11。
- 在2018年9月之前,这将安装OpenJDK 10。
- 2018年9月以后,这将安装OpenJDK 11。
要安装此版本,请先更新软件包索引:
sudo apt update
接下来,检查Java是否已经安装:
java -version
如果Java当前未安装,您将看到以下输出:
OutputCommand 'java' not found, but can be installed with:
apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
apt install openjdk-9-jre-headless
执行以下命令来安装OpenJDK:
sudo apt install default-jre
该命令将安装Java运行时环境(JRE)。 这将允许您运行几乎所有的Java软件。
验证安装:
java -version
您将看到以下输出:
Outputopenjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
除了JRE之外,您可能还需要Java开发工具包(JDK)才能编译和运行一些特定的基于Java的软件。 要安装JDK,请执行以下命令,该命令也将安装JRE:
sudo apt install default-jdk
通过检查Java编译器javac
的版本来验证是否安装了JDK:
javac -version
您将看到以下输出:
Outputjavac 10.0.1
接下来,我们来看看指定我们要安装的OpenJDK版本。
安装OpenJDK的特定版本
虽然您可以安装默认的OpenJDK软件包,但您也可以安装不同版本的OpenJDK。
OpenJDK 8
Java 8是目前的长期支持版本,虽然公共维护在2019年1月结束,但仍然得到广泛支持。要安装OpenJDK 8,请执行以下命令:
sudo apt install openjdk-8-jdk
验证这是与安装
java -version
你会看到这样的输出:
Outputopenjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
也可以只安装JRE,你可以通过执行sudo apt install openjdk-8-jre
。
OpenJDK 10/11
Ubuntu的存储库包含一个安装Java 10或11的软件包。在2018年9月之前,该软件包将安装OpenJDK 10.一旦Java 11发布,该软件包将安装Java 11。
要安装OpenJDK 10/11,请执行以下命令:
sudo apt install openjdk-11-jdk
要仅安装JRE,请使用以下命令:
sudo apt install openjdk-11-jre
接下来,让我们看看如何安装Oracle的官方JDK和JRE。
安装Oracle JDK
如果您想安装由Oracle发布的正式版本Oracle JDK,则需要为要使用的版本添加新的软件包存储库。
要安装作为最新LTS版本的Java 8,请首先添加其软件包存储库:
sudo add-apt-repository ppa:webupd8team/java
当您添加存储库时,您会看到类似这样的消息:
output Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK8). There are no actual Jav
a files in this PPA.
Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracl
e-java-7-and-6-installers-no.html
Update: Oracle Java 9 has reached end of life: http://www.oracle.com/technetwork/java/javase/downloads/j
dk9-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
继续。 然后更新你的软件包列表:
sudo apt update
包列表更新后,安装Java 8:
sudo apt install oracle-java8-installer
您的系统将从Oracle下载JDK并要求您接受许可协议。 接受协议并安装JDK。
现在让我们看看如何选择您想要使用的Java版本。
管理Java
您可以在一台服务器上安装多个Java。 您可以使用update-alternatives
命令配置哪个版本是命令行上使用的默认版本。
sudo update-alternatives --config java
如果您已经在本教程中安装了所有版本的Java,则输出结果如下所示:
OutputThere are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 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
选择与Java版本关联的数字以将其用作默认值,或者按下ENTER
以保留当前设置。
您可以为其他Java命令执行此操作,例如编译器( javac
):
sudo update-alternatives --config javac
其他可以运行该命令的命令包括但不限于: keytool
, javadoc
和jarsigner
。
设置JAVA_HOME
环境变量
许多使用Java编写的程序使用JAVA_HOME
环境变量来确定Java安装位置。
要设置此环境变量,请先确定Java的安装位置。 使用update-alternatives
命令:
sudo update-alternatives --config java
该命令显示Java的每个安装及其安装路径:
OutputThere are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 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:
在这种情况下,安装路径如下所示:
- OpenJDK 11位于
/usr/lib/jvm/java-11-openjdk-amd64/bin/java.
- OpenJDK 8位于
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
。 - Oracle Java 8位于
/usr/lib/jvm/java-8-oracle/jre/bin/java
。
复制首选安装的路径。 然后用nano
或你最喜欢的文本编辑器打开/etc/environment
:
sudo nano /etc/environment
在该文件的末尾,添加以下行,确保使用自己的复制路径替换突出显示的路径:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"
修改此文件将为系统上的所有用户设置JAVA_HOME
路径。
保存文件并退出编辑器。
现在重新加载此文件以将更改应用于当前会话:
source /etc/environment
验证是否设置了环境变量:
echo $JAVA_HOME
你会看到你刚刚设置的路径:
Output/usr/lib/jvm/java-11-openjdk-amd64/bin/java
其他用户将需要执行命令source /etc/environment
或注销并重新登录以应用此设置。
结论
在本教程中,您安装了多个Java版本并学习如何管理它们。 您现在可以安装运行在Java上的软件,例如Tomcat,Jetty,Glassfish,Cassandra或Jenkins。