Ubuntu系统安装与配置JDK17的完整指南

📅 2026/7/22 6:16:13 👁️ 阅读次数 📝 编程学习
Ubuntu系统安装与配置JDK17的完整指南

1. Ubuntu 下安装 JDK17 的两种主流方式

在 Ubuntu 系统中安装 JDK17 主要有两种途径:通过 apt 包管理器安装 OpenJDK 和手动下载 Oracle JDK 安装包。这两种方式各有优劣,适合不同场景。

OpenJDK 是 JDK 的开源实现,由社区维护,更新及时且与 Ubuntu 软件源深度集成。通过 apt 安装 OpenJDK 是最简单快捷的方式,适合大多数开发场景。Oracle JDK 则是 Oracle 官方的商业版本,包含一些专有组件,适合需要特定 Oracle 功能的场景。

1.1 通过 apt 安装 OpenJDK17

这是最推荐的安装方式,操作简单且便于后续升级维护。Ubuntu 22.04 LTS 及更新版本已默认包含 OpenJDK17 的软件源。

首先更新软件包索引:

sudo apt update

然后安装 OpenJDK17 开发套件:

sudo apt install openjdk-17-jdk

安装完成后验证版本:

java -version

如果系统中有多个 Java 版本,可以使用以下命令设置默认版本:

sudo update-alternatives --config java

1.2 手动安装 Oracle JDK17

如果需要使用 Oracle 官方 JDK,可以按照以下步骤操作:

  1. 访问 Oracle 官网下载 JDK17 的 .tar.gz 包
  2. 创建安装目录:
sudo mkdir -p /usr/lib/jvm
  1. 解压下载的压缩包:
sudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm
  1. 配置环境变量,编辑 ~/.bashrc 文件:
nano ~/.bashrc

在文件末尾添加:

export JAVA_HOME=/usr/lib/jvm/jdk-17 export PATH=$JAVA_HOME/bin:$PATH
  1. 使配置生效:
source ~/.bashrc

2. 环境变量配置详解

正确的环境变量配置对 Java 开发至关重要。以下是各环境变量的作用:

  • JAVA_HOME:指定 JDK 安装路径,许多 Java 工具(如 Maven、Gradle)依赖此变量
  • PATH:确保可以直接在终端执行 java、javac 等命令
  • CLASSPATH:指定 Java 类文件的查找路径(现代 Java 项目通常不推荐设置全局 CLASSPATH)

对于多版本共存的情况,可以使用 alternatives 系统管理:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk-17/bin/java" 1 sudo update-alternatives --set java /usr/lib/jvm/jdk-17/bin/java

3. 验证安装与常见问题排查

安装完成后应进行完整验证:

  1. 检查 Java 版本:
java -version javac -version
  1. 编写简单测试程序:
public class Test { public static void main(String[] args) { System.out.println("Java安装成功!"); } }

编译并运行:

javac Test.java java Test

常见问题及解决方案:

  1. 命令未找到错误:

    • 检查 PATH 变量是否包含 JDK 的 bin 目录
    • 确认 alternatives 配置正确
  2. 版本不匹配:

    • 使用update-alternatives --config java切换版本
    • 检查 .bashrc 或其他 shell 配置文件中的 JAVA_HOME 设置
  3. 权限问题:

    • 确保 JDK 安装目录有可执行权限
    • 使用 sudo 运行命令时注意环境变量可能不同

4. 多版本管理与切换

实际开发中经常需要同时维护多个 Java 版本。以下是管理多版本的最佳实践:

  1. 使用 SDKMAN! 工具(推荐):
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java 17.0.5-tem sdk use java 17.0.5-tem
  1. 手动管理:

    • 将不同版本安装在不同目录
    • 使用 update-alternatives 注册各版本
    • 通过--config选项切换
  2. 项目级配置:

    • 在 IDE 中为每个项目指定 JDK 版本
    • 使用 Maven 或 Gradle 的 toolchains 插件

5. 性能优化与安全配置

安装完成后建议进行以下优化:

  1. JVM 内存配置:

    • 编辑 /etc/environment 添加:
      JAVA_OPTS="-Xms512m -Xmx2G"
  2. 安全设置:

    • 定期检查并安装 JDK 安全更新
    • 禁用不安全的加密算法
    • 配置安全管理器(如需要)
  3. 日志与监控:

    • 配置 JFR(Java Flight Recorder)进行性能监控
    • 启用 GC 日志分析内存使用情况

6. 容器化环境中的 JDK 安装

在 Docker 容器中使用 JDK17 的最佳实践:

  1. 使用官方镜像:
FROM eclipse-temurin:17-jdk-jammy
  1. 多阶段构建优化镜像大小:
FROM eclipse-temurin:17-jdk-jammy as builder # 构建步骤... FROM eclipse-temurin:17-jre-jammy COPY --from=builder /app /app
  1. JVM 容器化优化:
    • 设置 -XX:+UseContainerSupport
    • 配置 -XX:MaxRAMPercentage 替代固定内存值
    • 使用 jlink 创建自定义运行时

7. IDE 集成与开发环境配置

主流 IDE 的 JDK17 配置方法:

  1. IntelliJ IDEA:

    • File > Project Structure > SDKs
    • 添加 JDK17 安装路径
    • 设置语言级别为 17
  2. Eclipse:

    • Window > Preferences > Java > Installed JREs
    • 添加 Standard VM 并指向 JDK17
    • 配置编译器合规级别
  3. VS Code:

    • 安装 Java 扩展包
    • 配置 java.home 设置
    • 使用 Settings Sync 同步配置

8. 新旧版本兼容性处理

从旧版本迁移到 JDK17 的注意事项:

  1. 移除已废弃的 API:

    • 检查并替换 java.security.acl 等包
    • 更新使用内部 API 的代码
  2. 模块系统调整:

    • 检查自动模块的使用
    • 确保所有依赖项都支持 JPMS
  3. 启动参数变更:

    • 替代 -XX:+AggressiveOpts 等已移除参数
    • 更新 GC 相关参数
  4. 工具链更新:

    • 确保构建工具支持 JDK17
    • 检查静态分析工具兼容性

9. 生产环境部署建议

JDK17 在生产环境的优化配置:

  1. 选择适合的 JVM 实现:

    • Temurin(推荐)
    • Oracle OpenJDK
    • Amazon Corretto
  2. 性能调优:

    • 根据负载特性选择 GC 算法
    • 配置 JIT 编译阈值
    • 启用分层编译
  3. 监控方案:

    • Prometheus + JMX Exporter
    • Elastic APM
    • 自定义健康检查端点
  4. 安全加固:

    • 限制 JNI 调用
    • 配置安全管理策略
    • 定期更新补丁

10. 卸载与清理

需要移除 JDK17 时的完整步骤:

  1. 卸载 OpenJDK:
sudo apt remove --purge openjdk-17-jdk sudo apt autoremove
  1. 删除手动安装的 Oracle JDK:
sudo rm -rf /usr/lib/jvm/jdk-17

然后清理环境变量配置

  1. 移除 alternatives 条目:
sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk-17/bin/java"
  1. 验证卸载:
which java java -version

对于彻底清理,还需要检查以下位置:

  • /etc/environment
  • /etc/profile.d/
  • 用户主目录下的 .bashrc、.profile、.zshrc 等文件