如何在 Ubuntu 22.04 上安装 OpenJDK:完整的分步指南
Java 仍然是世界上使用最广泛的编程语言之一,为从企业应用程序和 Android 开发到大数据管道和微服务的一切提供支持。任何 Java 开发环境的核心是 Java 开发工具包 (JDK) — 而 OpenJDK 是全球开发者信赖的黄金标准、免费、开源实现。
本指南将引导您完成在 Ubuntu 22.04 LTS 上安装、配置和测试 OpenJDK 的每个步骤,无论您是在本地计算机还是基于云的服务器上工作。如果您在 AlexHost 的 VPS 托管计划上运行项目,您将受益于 NVMe 驱动的存储以加快 Java 编译速度、用于不受限制配置的完整 root 访问权限,以及企业级 DDoS 保护以确保您的应用程序安全。
为什么在 Ubuntu 22.04 上使用 OpenJDK?
OpenJDK(开放 Java 开发工具包)是 Java SE(标准版)的官方参考实现。与专有替代品不同,OpenJDK 具有以下特点:
- 完全免费且开源 — 无许可费用或使用限制
- 积极维护 — 由 Oracle、Red Hat、Amazon 和更广泛的社区支持
- 完全兼容 — 几乎与所有 Java 框架兼容,包括 Spring Boot、Quarkus、Micronaut 和 Apache Maven
- 提供多个 LTS 版本 — 包括 OpenJDK 11 和 OpenJDK 17,两者均在 Ubuntu 22.04 的官方存储库中原生支持
Ubuntu 22.04 LTS(Jammy Jellyfish)由于其长期支持生命周期、稳定性和出色的软件包可用性,是 Java 开发的理想基础操作系统。将其与高性能 VPS 托管环境配合使用,从第一天起您就拥有了一个生产就绪的 Java 平台。
前提条件
在开始之前,请确保您具备以下条件:
- 运行 Ubuntu 22.04 LTS 的服务器或 VPS
- 具有 sudo 权限的用户账户(或 root 访问权限)
- 有效的互联网连接
- 对 Linux 命令行的基本熟悉
> AlexHost 提示:所有 AlexHost VPS 计划均提供 Ubuntu 22.04 作为可用操作系统镜像,默认启用完整 root 访问权限和 SSH — 使其非常适合此类设置。
步骤 1:更新和升级您的系统
在安装任何新软件之前,必须刷新软件包索引并应用所有待处理的升级。这可以防止依赖冲突,并确保您使用的是系统软件包的最新、最安全版本。
打开终端并运行以下两个命令:
sudo apt update
sudo apt upgrade -ysudo apt update— 从所有已配置的存储库获取最新软件包列表sudo apt upgrade -y— 将所有已安装的软件包升级到其最新可用版本
在继续之前等待该过程完成。如果包含内核升级,系统可能会提示您重启 — 如有必要请重启。
步骤 2:检查可用的 OpenJDK 版本
Ubuntu 22.04 的官方存储库包含多个版本的 OpenJDK。要在安装前查看可用版本的完整列表,请运行:
sudo apt search openjdk这将返回所有可安装的 OpenJDK 软件包列表。您将遇到的最相关的软件包是:
| 软件包 | 描述 |
|---|---|
openjdk-11-jdk | OpenJDK 11 — 长期支持版 (LTS) |
openjdk-17-jdk | OpenJDK 17 — Ubuntu 22.04 的最新 LTS 版本 |
openjdk-18-jdk | OpenJDK 18 — 短期发布版 |
openjdk-11-jre | 仅 Java 运行时环境(无编译器) |
openjdk-17-jre | 仅 Java 运行时环境(无编译器) |
JDK 与 JRE — 有什么区别?
- JDK(Java 开发工具包):包含 Java 编译器(
javac)、调试器和所有开发工具。如果您正在编写或编译 Java 代码,请安装此项。 - JRE(Java 运行时环境):仅包含*运行*预编译 Java 应用程序所需的内容。如果您正在部署应用程序但不进行开发,请安装此项。
出于开发目的,请始终安装 JDK 软件包。
步骤 3:安装 OpenJDK
选项 A — 安装 OpenJDK 11 (LTS)
OpenJDK 11 是一个长期支持版本,在企业环境中仍被广泛使用,并且许多旧版框架和工具都需要它。
sudo apt install openjdk-11-jdk -y选项 B — 安装 OpenJDK 17(推荐 LTS)
OpenJDK 17 是新项目当前推荐的 LTS 版本。与 OpenJDK 11 相比,它包含显著的性能改进、新语言特性(记录、密封类、模式匹配)和增强的安全性。
sudo apt install openjdk-17-jdk -y选项 C — 同时安装两个版本
您可以并排安装多个版本的 OpenJDK,并根据需要在它们之间切换(在步骤 5 中介绍):
sudo apt install openjdk-11-jdk openjdk-17-jdk -yAPT 将自动解析并安装所有必需的依赖项。
步骤 4:验证安装
安装完成后,通过检查版本确认 Java 已正确安装:
java -versionOpenJDK 17 的预期输出:
openjdk version "17.0.x" 2023-xx-xx
OpenJDK Runtime Environment (build 17.0.x+xx-Ubuntu-xubuntu1)
OpenJDK 64-Bit Server VM (build 17.0.x+xx-Ubuntu-xubuntu1, mixed mode, sharing)同时验证 Java 编译器是否可用:
javac -version预期输出:
javac 17.0.x如果两个命令都返回版本信息而没有错误,则您的 OpenJDK 安装成功。
步骤 5:配置默认 Java 版本(多个安装)
如果您安装了多个版本的 OpenJDK,Ubuntu 的 update-alternatives 工具允许您定义系统范围内默认使用哪个版本。
运行以下命令:
sudo update-alternatives --config java您将看到类似以下的输出:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode
Press <enter> to keep the current choice[*], or type selection number:输入与您首选默认版本对应的数字,然后按 Enter。您也可以对 javac 运行相同的命令来设置默认编译器:
sudo update-alternatives --config javac步骤 6:设置 JAVA_HOME 环境变量
许多基于 Java 的应用程序、构建工具(Maven、Gradle)和应用程序服务器(Tomcat、WildFly)依赖 JAVA_HOME 环境变量来定位 JDK 安装。正确设置它是一个关键的配置步骤。
查找您的 JDK 安装路径
首先,确定已安装 JDK 的确切路径:
sudo update-alternatives --list java这将输出类似以下内容:
/usr/lib/jvm/java-17-openjdk-amd64/bin/java您的 JAVA_HOME 路径是 /bin/java 之前的所有内容,因此在本例中为:/usr/lib/jvm/java-17-openjdk-amd64
为当前用户设置 JAVA_HOME
要仅为当前用户设置 JAVA_HOME,请编辑 .bashrc 文件:
nano ~/.bashrc滚动到文件底部并添加以下行(根据需要调整版本号):
# Java Environment Variables
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin保存文件(Ctrl + O,然后 Enter)并退出(Ctrl + X)。将更改应用到当前会话:
source ~/.bashrc系统范围设置 JAVA_HOME(所有用户)
要使 JAVA_HOME 对系统上的所有用户可用,请改为编辑 /etc/environment:
sudo nano /etc/environment添加以下行:
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"保存并关闭文件,然后重新加载它:
source /etc/environment验证 JAVA_HOME 是否正确设置
echo $JAVA_HOME预期输出:
/usr/lib/jvm/java-17-openjdk-amd64步骤 7:使用示例程序测试您的 Java 安装
确认一切端到端正常工作的最佳方法是编写、编译和运行一个简单的 Java 程序。
创建源文件
nano HelloWorld.java添加 Java 代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World! OpenJDK is working correctly.");
}
}保存文件并退出编辑器。
编译程序
使用 Java 编译器(javac)将源文件编译为字节码:
javac HelloWorld.java这会在同一目录中生成一个 HelloWorld.class 文件。如果没有看到错误,则编译成功。
运行程序
使用 Java 运行时执行已编译的程序:
java HelloWorld预期输出:
Hello, World! OpenJDK is working correctly.恭喜 — 您在 Ubuntu 22.04 上的 OpenJDK 安装完全正常运行!
步骤 8:保持 OpenJDK 更新
OpenJDK 会定期发布安全补丁和错误修复。要保持您的安装最新,请定期运行:
sudo apt update && sudo apt upgrade -yUbuntu 的 APT 软件包管理器将在官方存储库中提供 OpenJDK 更新时自动包含它们。
附加内容:在 AlexHost 上生产环境中运行 Java 应用程序
一旦您的开发环境设置完成,您可能希望在生产环境中部署您的 Java 应用程序。以下是一些建议:
选择合适的托管基础设施
- VPS 托管 — 非常适合运行 Spring Boot 微服务、REST API 和轻量级 Java Web 应用程序。完整的 root 访问权限让您可以精确配置 JVM 堆大小、垃圾回收设置和系统资源。
- 独立服务器 — 最适合高流量 Java 应用程序、大规模企业系统或需要最大 CPU 和 RAM 资源而不共享的应用程序。
- GPU 托管 — 非常适合基于 Java 的机器学习工作负载或受益于 GPU 加速的数据处理管道。
保护您的应用程序
- 安装 SSL/TLS 证书以加密到您的 Java Web 应用程序的流量。AlexHost 为所有托管计划提供 SSL 证书,以最少的配置启用 HTTPS。
- 在您的 Java 应用程序服务器(Tomcat、Jetty 或嵌入式 Spring Boot)前面使用反向代理(NGINX 或 Apache)以提高安全性和性能。
使用控制面板简化管理
如果您更喜欢基于 GUI 的方式来管理服务器环境,请考虑使用 带 cPanel 的 VPS,或探索 AlexHost 上提供的其他 VPS 控制面板,以简化服务器管理和您的 Java 部署。
常见问题故障排除
安装后出现 java: command not found
这通常意味着二进制文件不在您的 PATH 中。运行:
export PATH=$PATH:/usr/lib/jvm/java-17-openjdk-amd64/bin然后将此行永久添加到 ~/.bashrc。
Maven 或 Gradle 无法识别 JAVA_HOME
确保 JAVA_HOME 指向 JDK 根目录(而不是 bin 子目录)。验证方法:
ls $JAVA_HOME/bin/javac如果文件存在,则路径正确。
使用了错误的 Java 版本
使用 update-alternatives --config java(步骤 5)切换到正确的版本,然后用 java -version 验证。
权限被拒绝错误
确保您对系统级命令使用 sudo,并且您的用户在服务器上具有适当的权限。
摘要
以下是本指南所涵盖内容的快速参考:
| 步骤 | 命令 | 目的 |
|---|---|---|
| 更新系统 | sudo apt update && sudo apt upgrade -y | 确保系统是最新的 |
| 搜索版本 | sudo apt search openjdk | 查找可用的 OpenJDK 软件包 |
| 安装 JDK 17 | sudo apt install openjdk-17-jdk -y | 安装 OpenJDK 17 LTS |
| 验证 Java | java -version | 确认安装 |
| 设置默认版本 | sudo update-alternatives --config java | 选择默认 JDK |
| 设置 JAVA_HOME | 编辑 ~/.bashrc 或 /etc/environment | 配置环境变量 |
| 测试安装 | javac HelloWorld.java && java HelloWorld | 验证端到端 |
结论
在 Ubuntu 22.04 上安装 OpenJDK 是一个简单的过程,可以为您提供一个强大的、生产级的 Java 开发环境,且无需任何许可费用。通过遵循本指南,您已经:
- 更新了您的系统并从 Ubuntu 的官方存储库安装了 OpenJDK 11 或 17
- 验证了安装并配置了默认 Java 版本
- 设置了
JAVA_HOME环境变量以与构建工具和应用程序服务器兼容 - 成功编译并执行了一个 Java 程序以确认一切正常
无论您是在构建 Spring Boot API、基于 Gradle 的微服务还是数据处理应用程序,在高性能 AlexHost VPS 托管平台上运行它,都能确保快速的 NVMe 存储以提高编译速度、可靠的正常运行时间,以及您的 Java 应用程序所需的安全功能。
