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

📅 2026/7/22 6:12:28
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 java1.2 手动安装 Oracle JDK17如果需要使用 Oracle 官方 JDK可以按照以下步骤操作访问 Oracle 官网下载 JDK17 的 .tar.gz 包创建安装目录sudo mkdir -p /usr/lib/jvm解压下载的压缩包sudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm配置环境变量编辑 ~/.bashrc 文件nano ~/.bashrc在文件末尾添加export JAVA_HOME/usr/lib/jvm/jdk-17 export PATH$JAVA_HOME/bin:$PATH使配置生效source ~/.bashrc2. 环境变量配置详解正确的环境变量配置对 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/java3. 验证安装与常见问题排查安装完成后应进行完整验证检查 Java 版本java -version javac -version编写简单测试程序public class Test { public static void main(String[] args) { System.out.println(Java安装成功); } }编译并运行javac Test.java java Test常见问题及解决方案命令未找到错误检查 PATH 变量是否包含 JDK 的 bin 目录确认 alternatives 配置正确版本不匹配使用update-alternatives --config java切换版本检查 .bashrc 或其他 shell 配置文件中的 JAVA_HOME 设置权限问题确保 JDK 安装目录有可执行权限使用 sudo 运行命令时注意环境变量可能不同4. 多版本管理与切换实际开发中经常需要同时维护多个 Java 版本。以下是管理多版本的最佳实践使用 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手动管理将不同版本安装在不同目录使用 update-alternatives 注册各版本通过--config选项切换项目级配置在 IDE 中为每个项目指定 JDK 版本使用 Maven 或 Gradle 的 toolchains 插件5. 性能优化与安全配置安装完成后建议进行以下优化JVM 内存配置编辑 /etc/environment 添加JAVA_OPTS-Xms512m -Xmx2G安全设置定期检查并安装 JDK 安全更新禁用不安全的加密算法配置安全管理器如需要日志与监控配置 JFRJava Flight Recorder进行性能监控启用 GC 日志分析内存使用情况6. 容器化环境中的 JDK 安装在 Docker 容器中使用 JDK17 的最佳实践使用官方镜像FROM eclipse-temurin:17-jdk-jammy多阶段构建优化镜像大小FROM eclipse-temurin:17-jdk-jammy as builder # 构建步骤... FROM eclipse-temurin:17-jre-jammy COPY --frombuilder /app /appJVM 容器化优化设置 -XX:UseContainerSupport配置 -XX:MaxRAMPercentage 替代固定内存值使用 jlink 创建自定义运行时7. IDE 集成与开发环境配置主流 IDE 的 JDK17 配置方法IntelliJ IDEAFile Project Structure SDKs添加 JDK17 安装路径设置语言级别为 17EclipseWindow Preferences Java Installed JREs添加 Standard VM 并指向 JDK17配置编译器合规级别VS Code安装 Java 扩展包配置 java.home 设置使用 Settings Sync 同步配置8. 新旧版本兼容性处理从旧版本迁移到 JDK17 的注意事项移除已废弃的 API检查并替换 java.security.acl 等包更新使用内部 API 的代码模块系统调整检查自动模块的使用确保所有依赖项都支持 JPMS启动参数变更替代 -XX:AggressiveOpts 等已移除参数更新 GC 相关参数工具链更新确保构建工具支持 JDK17检查静态分析工具兼容性9. 生产环境部署建议JDK17 在生产环境的优化配置选择适合的 JVM 实现Temurin推荐Oracle OpenJDKAmazon Corretto性能调优根据负载特性选择 GC 算法配置 JIT 编译阈值启用分层编译监控方案Prometheus JMX ExporterElastic APM自定义健康检查端点安全加固限制 JNI 调用配置安全管理策略定期更新补丁10. 卸载与清理需要移除 JDK17 时的完整步骤卸载 OpenJDKsudo apt remove --purge openjdk-17-jdk sudo apt autoremove删除手动安装的 Oracle JDKsudo rm -rf /usr/lib/jvm/jdk-17然后清理环境变量配置移除 alternatives 条目sudo update-alternatives --remove java /usr/lib/jvm/jdk-17/bin/java验证卸载which java java -version对于彻底清理还需要检查以下位置/etc/environment/etc/profile.d/用户主目录下的 .bashrc、.profile、.zshrc 等文件