作者选择了开放互联网/言论自由基金来接收 100 美元的捐款,作为Write for DOnations计划的一部分。
介绍
许多软件都需要 Java 和 JVM(Java 的虚拟机),包括Tomcat、Jetty、Glassfish、Cassandra和Jenkins。
在本指南中,您将使用apt
. 您将安装 OpenJDK 以及来自 Oracle 的官方软件包。然后,您将选择要用于项目的版本。完成后,您将能够使用 JDK 开发软件或使用 Java Runtime 运行软件。
先决条件
要学习本教程,您需要:
- 按照 Ubuntu 18.04 初始服务器设置指南教程设置了一台 Ubuntu 18.04 服务器,包括 sudo 非 root 用户和防火墙。
安装默认的 JRE/JDK
安装 Java 的最简单选择是使用 Ubuntu 打包的版本。默认情况下,Ubuntu 18.04 包含 OpenJDK 版本 11,它是 JRE 和 JDK 的开源变体。
要安装这个版本,首先更新包索引:
- 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
执行以下命令以安装默认的 Java 运行时环境 (JRE),这将从 OpenJDK 11 安装 JRE:
- sudo apt install default-jre
JRE 将允许您运行几乎所有的 Java 软件。
使用以下命令验证安装:
- java -version
您将看到以下输出:
Outputopenjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
除了 JRE 之外,您可能还需要 Java Development Kit (JDK) 来编译和运行某些特定的基于 Java 的软件。要安装 JDK,请执行以下命令,该命令还将安装 JRE:
- sudo apt install default-jdk
通过检查javac
Java 编译器的版本来验证是否安装了 JDK :
- javac -version
您将看到以下输出:
Outputjavac 11.0.7
接下来我们看看如何安装Oracle官方的JDK和JRE。
安装 Oracle JDK 11
Oracle 的 Java 许可协议不允许通过包管理器进行自动安装。要安装 Oracle JDK(由 Oracle 分发的正式版本),您必须创建一个 Oracle 帐户并手动下载 JDK,以便为您要使用的版本添加新的软件包存储库。然后您可以apt
在第三方安装脚本的帮助下安装它。
您需要下载的 Oracle JDK 版本必须与安装程序脚本的版本相匹配。要了解您需要哪个版本,请访问该oracle-java11-installer
页面。
找到Bionic的包,如下图所示:
在这张图片中,脚本的版本是11.0.7
. 在这种情况下,您将需要 Oracle JDK 11.0.7。你不需要从这个页面下载任何东西;您将很快下载安装脚本apt
。
然后访问下载页面并找到与您需要的版本相匹配的版本。
单击JDK 下载按钮,您将进入显示可用版本的屏幕。单击.tar.gz
适用于 Linux的软件包。
您将看到一个屏幕,要求您接受 Oracle 许可协议。选中复选框以接受许可协议,然后按“下载”按钮。您的下载将开始。在下载开始之前,您可能需要再次登录您的 Oracle 帐户。
下载文件后,您需要将其传输到您的服务器。在您的本地机器上,将文件上传到您的服务器。在 macOS、Linux 或使用Windows Subsystem for Linux的Windows 上,使用该scp
命令将文件传输到sammy
用户的主目录。以下命令假定您已将 Oracle JDK 文件保存到本地计算机的Downloads
文件夹中:
- scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~
文件上传完成后,返回到您的服务器并添加将帮助您安装 Oracle 的 Java 的第三方存储库。
安装software-properties-common
软件包,它将add-apt-repository
命令添加到您的系统中:
- sudo apt install software-properties-common
接下来,导入用于验证您将要安装的软件的签名密钥:
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
你会看到这个输出:
Outputgpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg: imported: 1
然后使用add-apt-repository
命令将 repo 添加到您的包源列表中:
- sudo add-apt-repository ppa:linuxuprising/java
你会看到这条消息:
Output 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
安装程序将查找您下载的 Oracle JDK /var/cache/oracle-jdk11-installer-local
。创建此目录并将 Oracle JDK 存档移到那里:
- sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
- sudo cp jdk-11.0.7_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
最后,安装软件包:
- sudo apt install oracle-java11-installer-local
安装程序将首先要求您接受 Oracle 许可协议。接受协议,然后安装程序将提取 Java 包并安装它。
现在让我们看看如何选择要使用的 Java 版本。
管理 Java
您可以在一台服务器上安装多个 Java。您可以使用该命令配置在命令行上默认使用的版本update-alternatives
。
- sudo update-alternatives --config java
如果您在本教程中安装了 Java 的两个版本,则输出将如下所示:
OutputThere 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
选择与 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 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:
本例安装路径如下:
- OpenJDK 11 位于
/usr/lib/jvm/java-11-openjdk-amd64/bin/java.
- Oracle Java 位于
/usr/lib/jvm/java-11-oracle/jre/bin/java
.
从首选安装中复制路径。然后/etc/environment
使用nano
或您最喜欢的文本编辑器打开:
- sudo nano /etc/environment
在此文件的末尾,添加以下行,确保将突出显示的路径替换为您自己复制的路径,但不要包含/bin
路径部分:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
修改此文件将为JAVA_HOME
系统上的所有用户设置路径。
保存文件并退出编辑器。
现在重新加载此文件以将更改应用于当前会话:
- source /etc/environment
验证是否设置了环境变量:
- echo $JAVA_HOME
你会看到你刚刚设置的路径:
Output/usr/lib/jvm/java-11-openjdk-amd64
其他用户将需要执行命令source /etc/environment
或注销并重新登录以应用此设置。
结论
在本教程中,您安装了多个版本的 Java 并学习了如何管理它们。您现在可以安装在 Java 上运行的软件,例如 Tomcat、Jetty、Glassfish、Cassandra 或 Jenkins。