前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
介绍
Java 和 JVM(Java 虚拟机)是许多软件的必备组件,包括 Tomcat、Jetty、Glassfish、Cassandra 和 Jenkins。
在本指南中,您将使用 apt
安装各种版本的 Java 运行环境(JRE)和 Java 开发工具包(JDK)。您将安装 OpenJDK 以及来自 Oracle 的官方 JDK。然后,您将选择要在项目中使用的版本。完成后,您将能够使用 JDK 开发软件或使用 Java 运行时来运行软件。
先决条件
要按照本教程操作,您需要:
- 通过遵循 Ubuntu 18.04 初始服务器设置指南教程设置好的一个 Ubuntu 18.04 服务器,包括一个 sudo 非root用户和一个防火墙。
安装默认的 JRE/JDK
安装 Java 的最简单选项是使用 Ubuntu 打包的版本。默认情况下,Ubuntu 18.04 包含 Open JDK 11,这是 JRE 和 JDK 的开源变体。
要安装此版本,首先更新软件包索引:
sudo apt update
接下来,检查 Java 是否已安装:
java -version
如果 Java 尚未安装,您将看到以下输出:
Command 'java' not found, but can be installed with:
sudo apt install default-jre
sudo apt install openjdk-11-jre-headless
sudo apt install openjdk-8-jre-headless
执行以下命令安装默认的 Java 运行环境(JRE),这将安装来自 OpenJDK 11 的 JRE:
sudo apt install default-jre
JRE 将允许您运行几乎所有的 Java 软件。
使用以下命令验证安装:
java -version
您将看到类似以下的输出:
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.18.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing))
您可能需要 Java 开发工具包(JDK)以便编译和运行一些特定的基于 Java 的软件。要安装 JDK,请执行以下命令,这也将安装 JRE:
sudo apt install default-jdk
通过检查 Java 编译器 javac
的版本来验证 JDK 是否已安装:
javac -version
您将看到以下输出:
javac 11.0.11
接下来,让我们看看如何安装 Oracle 的官方 JDK 和 JRE。
安装 Oracle JDK 11
Oracle 的 Java 许可协议不允许通过软件包管理器自动安装。要安装 Oracle JDK(Oracle 分发的官方版本),您必须创建一个 Oracle 账户,并手动下载 JDK 以添加新的软件包存储库以便使用第三方安装脚本来使用 apt
安装它。
您需要下载的 Oracle JDK 版本必须与安装程序脚本的版本匹配。要找出您需要的版本,请访问 oracle-java11-installer
页面。
找到适用于 Bionic 的软件包,如下图所示:
!Ubuntu 18.04 的安装程序软件包
在此图像中,脚本的版本是 11.0.7
。在这种情况下,您将需要 Oracle JDK 11.0.7。您无需从此页面下载任何内容;您将很快通过 apt
下载安装脚本。
然后访问下载页面,找到与您需要的版本匹配的版本。
!Oracle Java 11
单击 JDK Download 按钮,您将进入一个显示可用版本的屏幕。单击 Linux 的 .tar.gz
软件包。
!Linux 下载
您将看到一个屏幕,询问您接受 Oracle 许可协议。选择复选框以接受许可协议,然后按 Download 按钮。下载将开始。在下载开始之前,您可能需要再次登录到您的 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
您将看到以下输出:
gpg: key EA8CACC073C3DB2A: public key "Launchpad PPA for Linux Uprising" imported
gpg: Total number processed: 1
gpg: imported: 1
然后使用 add-apt-repository
命令将存储库添加到您的软件包源列表中:
sudo add-apt-repository ppa:linuxuprising/java
您将看到此消息:
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
安装程序将在 /var/cache/oracle-jdk11-installer-local
中查找您下载的 Oracle JDK。创建此目录并将 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
命令配置默认用于命令行的 Java 版本。
sudo update-alternatives --config java
如果您在本教程中安装了两个版本的 Java,则输出如下所示:
有 2 个选择可用于替代 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 自动模式
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手动模式
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 手动模式
按 <enter> 保留当前选择[*],或键入选择的编号:
选择与要使用的 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 安装以及其安装路径:
有 2 个选择可用于替代 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 自动模式
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手动模式
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 手动模式
按 <enter> 保留当前选择[*],或键入选择的编号:
在这种情况下,安装路径如下:
- OpenJDK 11 位于
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
。 - Oracle Java 位于
/usr/lib/jvm/java-11-oracle/jre/bin/java
。
复制您首选安装的路径。然后使用 nano
或您喜欢的文本编辑器打开 /etc/environment
:
sudo nano /etc/environment
在文件末尾添加以下行,确保将突出显示的路径替换为您自己复制的路径,但不要包括路径的 bin/
部分:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
修改此文件将为系统上的所有用户设置 JAVA_HOME
路径。
保存文件并退出编辑器。
现在重新加载此文件以将更改应用于当前会话:
source /etc/environment
验证环境变量是否已设置:
echo $JAVA_HOME
您将看到您刚刚设置的路径:
/usr/lib/jvm/java-11-openjdk-amd64
其他用户需要执行命令 source /etc/environment
或注销并重新登录以应用此设置。
结论
在本教程中,您安装了多个版本的 Java 并学习了如何管理它们。现在,您可以安装在 Java 上运行的软件,例如 Tomcat、Jetty、Glassfish、Cassandra 或 Jenkins。