Java 和 JVM(Java 的虚拟机)被广泛使用,本文介绍如何使用 apt-get 安装不同版本的 Open JRE 和 Open JDK。JRE 仅用于提供 Java 应用程序执行环境,如果要编译 Java 应用程序,则要安装 JDK。

先决条件

  • Ubuntu 18.04 服务器
  • 具有 sudo 或 root 执行权限的账户

安装默认版本

安装 Java 最简单的做法是使用 Ubuntu 系统自带的版本。默认情况下,Ubuntu 18.04 包含 Open JDK,它是 JRE 和 JDK 的开源变体。

# 更新软件包索引:
sudo apt update

# 检查是否已安装Java:
java -version

如果当前未安装 Java,则会看到以下输出:

Command 'java' not found, but can be installed with:
...

执行以下命令以安装 OpenJDK:

sudo apt install default-jre

该命令将安装 Java Runtime Environment(JRE),这将允许您运行几乎所有的Java软件。再次验证安装:

$ java -version
openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.118.04)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.118.04, mixed mode, sharing)

除 JRE 之外,您可能还需要 Java 开发工具包(JDK),以便编译和运行某些基于 Java 的应用程序。要安装 JDK,请执行以下命令,该命令还将安装JRE:

sudo apt install default-jdk

通过检查编译器 javac 的版本,验证是否已安装JDK :

javac -version

javac 11.0.5

安装指定版本

您可以安装默认的 OpenJDK 软件包,也可以安装不同版本的 OpenJDK。

列出可用版本清单:

kelsen@kelsen-XPS-L521X:~$ sudo apt install openjdk-
openjdk-11-dbg           openjdk-11-jre-zero      openjdk-12-jre-headless  openjdk-13-jre           openjdk-8-jdk-headless
openjdk-11-demo          openjdk-11-source        openjdk-12-jre-zero      openjdk-13-jre-headless  openjdk-8-jre
openjdk-11-doc           openjdk-12-dbg           openjdk-12-source        openjdk-13-jre-zero      openjdk-8-jre-dcevm
openjdk-11-jdk           openjdk-12-demo          openjdk-13-dbg           openjdk-13-source        openjdk-8-jre-headless
openjdk-11-jdk-headless  openjdk-12-doc           openjdk-13-demo          openjdk-8-dbg            openjdk-8-jre-zero
openjdk-11-jre           openjdk-12-jdk           openjdk-13-doc           openjdk-8-demo           openjdk-8-source
openjdk-11-jre-dcevm     openjdk-12-jdk-headless  openjdk-13-jdk           openjdk-8-doc            
openjdk-11-jre-headless  openjdk-12-jre           openjdk-13-jdk-headless  openjdk-8-jdk

OpenJDK 8

Java 8 是当前的长期支持版本,尽管公共维护已于 2019 年 1 月结束,但仍得到广泛支持。要安装 OpenJDK 8,请执行以下命令:

sudo apt install openjdk-8-jdk

# 验证安装
java -version

也可以仅安装 JRE,可以通过执行 sudo apt install openjdk-8-jre 来完成。

sudo apt install openjdk-11-jre

OpenJDK11/12

如果要安装 Java11

sudo apt install openjdk-11-jdk

# 或者仅安装 jre
sudo apt install openjdk-11-jre

管理 Java

一台服务器上可以安装多个版本的 Java。使用 update-alternatives 命令可以配置默认使用版本。

sudo update-alternatives --config java

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-13-openjdk-amd64/bin/java      1311      auto mode
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
  2            /usr/lib/jvm/java-13-openjdk-amd64/bin/java      1311      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

输入与 Java 版本关联的数字以将其用作默认值,或按 ENTER 保留当前设置。

您可以对其他 Java 命令执行此操作,例如编译器(javac):

sudo update-alternatives --config javac

环境变量 JAVA_HOME

使用 Java 编写的许多程序都使用 JAVA_HOME 环境变量来确定 Java 安装位置。要设置此环境变量,首先确定 Java 的安装位置。可以通过 update-alternatives 命令获取 Java 的安装路径。

复制默认版本 Java 的安装路径,然后编辑 /etc/environment,在此文件的末尾,添加或替换您自己复制的路径:

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"

重新加载此文件以将更改应用于当前会话:

source /etc/environment

# 验证
echo $JAVA_HOME