在 Ubuntu 中安装 JDK2025年3月17日 | 阅读 12 分钟 JVM(Java 虚拟机)和 Java 是各种类型软件所必需的,包括 Jenkins、Cassandra、Glassfish、Jetty 和 Tomcat。 在本文中,我们将使用 'apt' 来安装 Java Development Kit (JDK) 和 Java Runtime Environment (JRE) 的多个版本。我们将同时安装 OpenJDK 和来自 Oracle 的官方 JDK。然后,我们将选择我们要用于项目的版本。完成后,我们将能够应用 JDK 进行软件开发,或使用 Java Runtime 来运行软件。 Ubuntu 20.04(默认)的存储库包含两个 OpenJDK 包:Java Development Kit 和 Java Runtime Environment。Java Runtime Environment 由 Java Virtual Machine、允许我们执行 Java 程序 的二进制文件和类组成。Java Development Kit 包含 Java Runtime Environment 以及用于构建 Java 应用程序的调试/开发工具和库。
Oracle 为 Linux、macOS 和 Windows 操作系统的 x86-64 架构以及 Linux 和 macOS 的 aarch64 架构发布了二进制文件。旧版本支持 SPARC 架构和 Oracle Solaris 操作系统。Oracle 对 JVMS 的主要实现称为 HotSpot。 JDK 内容JDK 作为主要组件包含一组编程工具,包括:
实验性工具可能不会出现在 JDK 的未来版本中。此外,JDK 提供了一个完整的 JRE(Java 运行时环境),通常称为私有运行时,因为它与“常规”JRE 隔离并且包含额外的内容。 它由 Java 虚拟机组成;生产环境中可用的每个类库,以及仅对开发人员有用的额外库,包括 IDL 库和国际化库。 其他 JDK除了最常用的 JDK 之外,通常还有许多其他 JDK 可用于各种平台,其中一些是从 Sun JDK 源代码启动的,而另一些则不是。每个都遵循通用的 Java 规范,但在未明确指定的区域(包括优化技术、编译策略和垃圾收集)上有所不同。 它们包括: 维护或开发模式
已停产或未维护
JDK 版本JDK 10JDK 10 是 Java Community Process 中 JSR 383 指定的开源 Java SE 10 Platform 的参考实现。于 2018 年 3 月 20 日,JDK 10 完成了通用可用性。Oracle 提供的基于 GPL 的生产就绪二进制文件。此版本的计划和功能通过 JEP 流程引入和跟踪,该流程已由 JEP 2.0 提案进行了修改。 JDK 11它于 2018 年 9 月 25 日发布,目前提供错误修复。它提供长期支持(LTS)。Java 11 包含几个新特性,其中一些如下:
一些旧版本中的特性已被弃用;特别是,Java Web Start 和 Java Applet 不再存在。CORBA、Java EE 和 JavaFX 模块已从 JDK 中删除。 JDK 12它于 2019 年 3 月 19 日发布。Java 12 包含几个新特性,包括:
JEP 325 预览功能扩展了 switch 语句;因此,它可以作为表达式使用,并且包含一种新的 case 标签样式,其中表达式位于右侧。不需要 break 语句。可以使用 yield 语句处理复杂表达式。 JDK 13它于 2019 年 9 月 17 日发布。Java 13 包含以下新特性以及一些错误修复和小型改进。
JDK 14JDK 14 于 2020 年 3 月 17 日发布。它包含以下新特性以及一些错误修复和小型改进。
JDK 15JDK 15 于 2020 年 9 月 15 日发布。它支持文本块(多行字符串字面量)。Z 和 Shenandoah 垃圾收集器已准备好在生产环境中使用。Oracle 的 Solaris 操作系统支持已被放弃。Nashorn JavaScript 引擎已被弃用。还弃用了一些根 CA 证书。 JDK 16JDK 16 于 2021 年 3 月 16 日发布。它放弃了 Ahead-of-Time 编译特性。Java 实现仍然并且本身是用 C++ 语言实现的,而从 Java 16 开始允许使用最新的 C++14。此外,代码已迁移到 GitHub,放弃了 Mercurial 作为源代码控制系统。 JDK 17JDK 17 是自 2021 年 9 月起最新的 LTS 版本。此版本是自切换到新的六个月版本周期以来的第二个 LTS 版本。JEP 406 扩展了 instanceof 任务中使用的模式匹配语法,以用于 switch 表达式和语句。它允许根据参数的类别、精炼模式和 null 情况选择 case。 JDK 18JDK 18 于 2022 年 3 月 22 日发布。一些新特性如下:
JDK 19JDK 19 于 2022 年 9 月 20 日发布。一些新特性如下:
JEP 405 允许 Record Patterns,扩展了 switch 表达式和 instanceof 操作符的模式匹配功能,以添加显式引用 Record 元素的 Record Patterns。 JDK 20JDK 20 于 2023 年 3 月 21 日发布。一些新特性如下:
前提条件我们将需要遵循本文 按照 Ubuntu 20.04 的初始服务器设置指南进行 20.04 服务器设置,包括一个非 root sudo 用户和防火墙。 安装默认 JDK/JRE安装Java最简单的选择之一是应用 Ubuntu 打包的版本。Ubuntu 的 20.04 版本默认包含OpenJDK的11 版本,它是JDK和JRE的开源版本。 首先,我们需要更新软件包索引以安装此版本。 ![]() 接下来,查看Java版本是否已安装。 ![]() 如果当前未安装Java版本,我们将看到以下结果。 我们需要运行以下命令来安装默认的Java Runtime Environment,它将使用OpenJDK 11安装JRE。 ![]() Java Runtime Environment 将允许我们执行几乎所有 Java 软件。 我们可以使用以下命令验证安装。 我们将找到类似以下的结果 ![]() 除了Java Runtime Environment之外,我们可能还需要Java Development Kit来编译和运行一些特定的Java 应用程序。我们需要运行以下命令来安装JDK,它也会安装JRE。 ![]() 我们需要通过检查Java 编译器 javac版本来验证JDK是否已成功安装。 ![]() 我们将看到以下结果 接下来,让我们看看如何安装 Oracle 的官方 JDK 和 JRE。 安装 Oracle JDK 11Oracle关于 Java 的许可协议不允许从包管理器自动安装。我们应该创建一个Oracle账户并手动下载JDK,然后添加任何新的包存储库以用于我们要安装Oracle Java Development Kit的版本,这是Oracle共享的官方版本。然后,我们可以使用apt通过第三方安装脚本来安装它。 我们需要安装的与 Oracle 的JDK版本安装脚本的版本必须匹配。我们应该访问一个页面,即'oracle-java11-installer',以了解我们需要哪个版本。 此页面上的脚本版本是11.0.7。在这种情况下,我们需要Oracle JDK的11.0.7版本。我们的版本号可能会因安装软件的时间而异。我们很快就会通过 apt 下载安装脚本,因此无需从此页面安装任何内容。 然后,我们需要检查下载页面,然后找到与我们所需版本匹配的版本。
文件上传过程完成后,我们将返回到服务器并添加一个第三方存储库,该存储库将支持我们安装 Oracle 的 Java。我们将安装一个包'software-properties-common',它将向我们的系统添加一个命令'add-apt-repository'。 ![]() 接下来,我们将导入一个签名密钥,该密钥用于验证我们将要安装的软件 ![]() 我们将看到以下输出 然后,我们将使用命令'add-apt-repository'将存储库添加到我们的软件包源列表中 ![]() 我们将看到以下消息 我们需要按enter键继续安装过程。我们可能会找到一条关于'no valid OpenPGP data found'的消息,但我们可以安全地忽略此消息。 我们将使用以下命令更新软件包列表,以便新软件可用于安装过程 ![]() 安装程序会查找我们下载的Oracle JDK在/var/cache/oracle-jdk11-installer-local目录中。我们将创建此目录并将Oracle JDK的存档转移到那里。 ![]() 最后,我们将使用以下命令安装我们的软件包 ![]() 首先,安装程序将要求我们接受 Oracle 的许可协议。我们将接受该协议,安装程序将提取 Java 包并进行安装。 现在,我们将了解如何选择要使用的 Java 版本。 Java 管理我们可以在一台服务器上安装多个 Java 版本。我们可以使用命令'update-alternatives'来配置哪个版本是终端上应用的默认版本。该命令如下所示 ![]() 如果我们已安装本文中的两个 Java 版本,则结果将如下所示。 选择与要设为默认值的 Java 版本对应的数字,或按Enter键以保留当前设置。 我们可以对其他 Java 命令(如javac编译器)执行此操作。该命令如下所示 此命令可以执行的许多其他命令包括但不限于:keytool、jarsigner和javadoc。 设置 JAVA_HOME 环境变量许多用 Java 语言编写的程序使用环境变量JAVA_HOME来确定 Java 的安装位置。 首先,我们需要确定Java 版本安装在哪里来设置环境变量。 我们将使用以下命令 ![]() 此命令将显示所有 Java 安装及其安装路径。 在这种情况下,安装路径如下
我们需要使用首选的安装程序复制路径。之后,我们将使用nano文本编辑器或其他文本编辑器打开/etc/environment目录。 我们将在此文件末尾添加以下行。请确保将突出显示的路径替换为复制的路径,但不要添加bin/的部分。 我们将修改此文件,它将为我们系统上的每个用户设置JAVA_HOME路径。 我们将保存此文件并退出文本编辑器。 现在,我们将重新加载文件以将修改应用于当前会话 我们将使用以下命令验证此环境变量是否已设置 我们将找到刚刚设置的路径。 许多其他用户需要运行source /etc/environment命令或注销再重新登录才能使用此设置。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。