介绍
Java和JVM(Java的虚拟机)需要许多类型的软件,包括 Tomcat, Jetty, Glassfish, Cassandra和 Jenkins。
在本指南中,您将使用apt
安装各种版本的Java Runtime Environment(JRE)和Java Developer Kit(JDK)。您将安装OpenJDK以及来自Oracle的官方JDK。
前提条件
要遵循本教程,您将需要:
- 一个 Ubuntu 20.04 服务器通过遵循 Ubuntu 20.04 初始服务器安装指南教程,包括一个 sudo 非 root** 用户和防火墙。
安装默认 JRE/JDK
安装Java的最简单的选择是使用与Ubuntu组成的版本. 默认情况下,Ubuntu 20.04包含Open JDK 11,这是JRE和JDK的开源变体。
要安装此版本,请先更新包索引:
1sudo apt update
接下来,检查是否已经安装了Java:
1java -version
如果 Java 尚未安装,您将看到以下输出:
1[secondary_label Output]
2Command 'java' not found, but can be installed with:
3
4sudo apt install openjdk-11-jre-headless # version 11.0.11+9-0ubuntu2~20.04, or
5sudo apt install default-jre # version 2:1.11-72
6sudo apt install openjdk-13-jre-headless # version 13.0.7+5-0ubuntu1~20.04
7sudo apt install openjdk-16-jre-headless # version 16.0.1+9-1~20.04
8sudo apt install openjdk-8-jre-headless # version 8u292-b10-0ubuntu1~20.04
运行以下命令来安装默认的Java Runtime Environment(JRE),它将从OpenJDK 11安装JRE:
1sudo apt install default-jre
JRE将允许您运行几乎所有Java软件。
检查安装与:
1java -version
您将看到类似于以下的输出:
1[secondary_label Output]
2openjdk version "11.0.11" 2021-04-20
3OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
4OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing))
除了 JRE 之外,您可能还需要 Java 开发套件 (JDK) 来编译和运行某些特定的基于 Java 的软件。
1sudo apt install default-jdk
通过检查 Java 编译器「javac」的版本来验证 JDK 是否已安装:
1javac -version
您将看到以下输出:
1[secondary_label Output]
2javac 11.0.11
接下来,让我们看看如何安装Oracle的官方JDK和JRE。
安装 Oracle JDK 11
Oracle 的 Java 许可协议不允许通过包管理器进行自动安装. 要安装 Oracle JDK,这是 Oracle 发布的官方版本,您必须创建 Oracle 帐户,并手动下载 JDK 以添加您想要使用的版本的新包库。
您需要下载的 Oracle JDK 的版本必须与安装程序脚本的版本匹配. 要查找您需要的版本,请访问 oracle-java11-installer
页面。
查找 Focal 的包,如下图所示:
在此图像中,脚本的版本是 11.0.7
. 在这种情况下,您需要 Oracle JDK 11.0.7。
您不需要从此页面下载任何东西;您将很快通过apt
下载安装脚本。
然後前往 下載頁面並找到匹配您需要的版本。
点击 JDK 下载 按钮,您将被带到显示可用的版本的屏幕上。
您将看到一个屏幕,要求您接受 Oracle 许可协议。 选择验证框来接受许可协议,然后按下 Download 按钮。 您的下载将开始。
一旦下载了该文件,您将需要将其传输到您的服务器上。在本地计算机上,将该文件上传到您的服务器上。在 macOS、Linux 或 Windows 上使用 Windows 子系统 for Linux,使用scp
命令将该文件传输到您的sammy
用户的主目录。下列命令假定您已将 Oracle JDK 文件保存到本地计算机的下载
文件夹:
1[environment local]
2scp Downloads/jdk-11.0.7_linux-x64_bin.tar.gz sammy@your_server_ip:~
完成文件上传后,返回您的服务器并添加第三方存储库,以帮助您安装Oracle的Java。
安装software-properties-common
包,将add-apt-repository
命令添加到您的系统:
1sudo apt install software-properties-common
接下来,导入用于验证你要安装的软件的签名密钥:
1sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EA8CACC073C3DB2A
你会看到这个输出:
1[secondary_label Output]
2gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
3gpg: Total number processed: 1
4gpg: imported: 1
然后使用add-apt-repository
命令将 Repo 添加到您的包源列表中:
1sudo add-apt-repository ppa:linuxuprising/java
你会看到这个消息:
1[secondary_label Output]
2 Oracle Java 11 (LTS) and 16 installer for Ubuntu (21.04, 20.10, 20.04, 18.04, 16.04 and 14.04), Pop!_OS, Linux Mint and Debian.
3
4Java binaries are not hosted in this PPA due to licensing. The packages in this PPA download and install Oracle Java, 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
10Installation instructions (with some tips), feedback, suggestions, bug reports etc.:
11
12. . .
13
14Press [ENTER] to continue or Ctrl-c to cancel adding it.
您可能会看到一个消息没有找到有效的 OpenPGP 数据
,但您可以安全地忽略这一点。
更新您的包列表以使新软件可供安装:
1sudo apt update
安装程序将搜索您下载的 Oracle JDK 在 /var/cache/oracle-jdk11-installer-local
. 创建此目录并将 Oracle JDK 档案移动到那里:
1sudo mkdir -p /var/cache/oracle-jdk11-installer-local/
2sudo cp jdk-11.0.7_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/
最后,安装该包:
1sudo apt install oracle-java11-installer-local
安装程序将首先要求您接受 Oracle 许可协议. 接受协议,然后安装程序将提取 Java 包并安装它。
现在让我们看看如何选择您想要使用的Java版本。
Java 管理
您可以在一个服务器上进行多个Java安装,您可以使用更新替代
命令来配置哪个版本是命令行上使用的默认版本。
1sudo update-alternatives --config java
如果您在本教程中安装了两个版本的Java,输出将是这样的:
1[secondary_label Output]
2There are 2 choices for the alternative java (providing /usr/bin/java).
3
4 Selection Path Priority Status
5------------------------------------------------------------
6 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
7 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
8* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
9
10Press <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编写的程序使用JAVA_HOME
环境变量来确定Java安装位置。
要设置此环境变量,请先确定 Java 安装在何处。
1sudo update-alternatives --config java
这个命令显示了Java的每个安装以及其安装路径:
1[secondary_label Output]
2There are 2 choices for the alternative java (providing /usr/bin/java).
3
4 Selection Path Priority Status
5------------------------------------------------------------
6 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
7 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
8* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 manual mode
9
10Press <enter> to keep the current choice[*], or type selection number:
在这种情况下,安装路径如下:
OpenJDK 11 位於 /usr/lib/jvm/java-11-openjdk-amd64/bin/java.
2. Oracle Java 位於 /usr/lib/jvm/java-11-oracle/jre/bin/java
.
從您喜歡的安裝中複製路徑,然後使用「nano」或您最喜歡的文本編輯器開啟「/etc/environment」:
1sudo nano /etc/environment
在此文件的末尾,添加下列行,确保用你自己的复制路径取代突出路径,但不包括路径的bin/
部分:
1[label /etc/environment]
2JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
修改此文件将为您的系统上的所有用户设置JAVA_HOME
路径。
保存文件并离开编辑器。
现在重新加载此文件以将更改应用到当前会话中:
1source /etc/environment
检查环境变量是否已设置:
1echo $JAVA_HOME
你会看到你刚刚设置的路径:
1[secondary_label Output]
2/usr/lib/jvm/java-11-openjdk-amd64
其他用户需要执行命令 source /etc/environment
或退出并重新登录以应用此设置。
结论
在本教程中,您安装了多个版本的Java,并学会了如何管理它们,现在您可以安装运行在Java上的软件,如Tomcat,Jetty,Glassfish,Cassandra或Jenkins。