)
Ubuntu 22.04 LTS 安装 JDK 17 终极指南OpenJDK 与 Oracle 双版本详解作为一名长期在Linux环境下工作的Java开发者我深知在Ubuntu上配置Java开发环境的痛点。特别是面对OpenJDK和Oracle JDK的选择时新手往往陷入困惑。本文将彻底解决这些问题提供从安装到配置的完整方案。1. JDK 17 版本选择OpenJDK 与 Oracle JDK 对比在开始安装前理解两种JDK的区别至关重要。OpenJDK是Java平台的开源实现而Oracle JDK则是Oracle公司提供的商业版本。两者在功能上几乎一致但存在一些关键差异对比项OpenJDKOracle JDK许可证GPLv2CEOracle商业许可证更新频率社区维护更新较慢Oracle官方维护更新及时性能优化基础优化包含额外性能优化商业使用完全免费生产环境需商业授权长期支持(LTS)社区提供Oracle官方提供提示对于个人开发者和小型项目OpenJDK通常是更好的选择因为它完全免费且功能完备。只有在需要Oracle特定优化或商业支持时才考虑Oracle JDK。2. OpenJDK 17 安装与配置2.1 通过官方仓库安装OpenJDKUbuntu 22.04 LTS官方仓库已经包含OpenJDK 17安装过程非常简单# 更新软件包索引 sudo apt update # 安装OpenJDK 17 JDK包含JRE sudo apt install openjdk-17-jdk安装完成后验证版本java -version你应该看到类似输出openjdk version 17.0.8 2023-07-18 OpenJDK Runtime Environment (build 17.0.87-Ubuntu-0ubuntu122.04) OpenJDK 64-Bit Server VM (build 17.0.87-Ubuntu-0ubuntu122.04, mixed mode, sharing)2.2 配置环境变量正确设置环境变量是确保Java应用正常运行的关键。推荐以下两种方式方法一系统级配置影响所有用户sudo nano /etc/environment添加以下内容JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64方法二用户级配置仅影响当前用户nano ~/.bashrc添加以下内容export JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64 export PATH$PATH:$JAVA_HOME/bin使配置生效source ~/.bashrc3. Oracle JDK 17 安装指南3.1 通过PPA安装Oracle JDK由于Oracle JDK不在Ubuntu官方仓库中我们需要添加第三方PPA# 添加PPA仓库 sudo add-apt-repository ppa:linuxuprising/java sudo apt update # 安装Oracle JDK 17 sudo apt install oracle-java17-installer安装过程中会显示Oracle许可协议按Tab选择是并回车确认。3.2 验证Oracle JDK安装java -version正确安装后应显示java version 17.0.8 2023-07-18 LTS Java(TM) SE Runtime Environment (build 17.0.89-LTS-211) Java HotSpot(TM) 64-Bit Server VM (build 17.0.89-LTS-211, mixed mode, sharing)3.3 配置Oracle JDK环境变量Oracle JDK的安装路径与OpenJDK不同sudo nano /etc/environment添加JAVA_HOME/usr/lib/jvm/java-17-oracle4. 多版本管理与切换4.1 查看已安装的Java版本update-alternatives --config java输出示例有 2 个候选项可用于替换 java (提供 /usr/bin/java)。 选择 路径 优先级 状态 ------------------------------------------------------------ * 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 自动模式 1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 手动模式 2 /usr/lib/jvm/java-17-oracle/bin/java 1091 手动模式 要维持当前值[*]请按回车键或者键入选择的编号4.2 切换Java版本只需输入对应编号并按回车即可切换。例如选择Oracle JDK键入选择的编号24.3 验证当前使用的Java版本java -version5. 常见问题与解决方案问题1找不到java命令确保已正确安装JDK检查环境变量配置是否正确执行source ~/.bashrc或重新登录使配置生效问题2安装Oracle JDK时卡在许可协议界面确保使用终端全屏模式按Tab键切换到是选项使用方向键确认选择问题3版本切换不生效确保以root或sudo权限执行update-alternatives检查是否有多个Java版本冲突尝试注销后重新登录6. 进阶配置与优化6.1 设置默认Java版本sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java6.2 配置Maven使用特定JDK在~/.mavenrc中添加export JAVA_HOME/usr/lib/jvm/java-17-openjdk-amd646.3 监控Java应用内存使用jstat -gc pid其中pid可通过jps命令获取。在实际项目中我发现OpenJDK 17的性能已经非常接近Oracle JDK特别是在LTS版本中。对于大多数开发场景OpenJDK完全能够满足需求而且避免了潜在的许可问题。只有在需要特定商业功能或性能调优时才需要考虑Oracle JDK。