Linux下如何升级JDK版本?

Linux系统中级JDK版本是开发运维中的常见需求,通常出于性能优化、安全补丁或新特性支持等目的,以下是详细的级步骤,涵盖主流发行版(如Ubuntu/Debian和CentOS/RHEL)的两种安装方式(包管理器安装与手动安装),以及环境变量配置、旧版本卸载等关键环节。

linux下如何升级jdk版本升级

升级前准备:备份旧JDK配置

升级前建议备份旧JDK的环境变量配置,避免因配置丢失导致服务异常,主要备份以下文件:

  • /etc/profile(系统全局环境变量)
  • /etc/profile.d/java.sh(Java专用配置,若存在)
  • 用户家目录下的.bashrc.zshrc(用户级环境变量)

备份命令示例:

sudo cp /etc/profile /etc/profile.bak
cp ~/.bashrc ~/.bashrc.bak

下载新JDK版本

根据需求选择JDK发行版(如Oracle OpenJDK、Adoptium Temurin、Amazon Corretto等),以Adoptium Temurin为例(支持多平台,免费开源):

官网下载(推荐)

访问Adoptium官网(https://adoptium.net/),选择对应系统架构(如x64)、操作系统(Linux)和JDK版本(如JDK 17),下载tar.gz压缩包。

命令行下载(无需浏览器)

使用wget直接下载(以JDK 17为例):

wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz

安装新JDK

包管理器安装(适合Ubuntu/Debian或CentOS/RHEL)

Ubuntu/Debian系统

# 更新软件源
sudo apt update
# 安装OpenJDK 17(可替换为其他版本,如openjdk-11-jdk)
sudo apt install openjdk-17-jdk -y

CentOS/RHEL系统

# 安装EPEL源(若未安装)
sudo yum install epel-release -y
# 安装OpenJDK 17(CentOS 7/8适用,RHEL类似)
sudo yum install java-17-openjdk-devel -y

注意:包管理器安装会自动处理环境变量,无需手动配置,但版本可能非最新。

linux下如何升级jdk版本升级

手动安装(通用所有Linux发行版)

  1. 解压JDK压缩包
    下载的文件通常存放在/home/user/Downloads,移动到/usr/local并解压:

    sudo mkdir -p /usr/local/java
    sudo tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz -C /usr/local/java/
    # 重命名目录(可选,方便管理)
    sudo ln -s /usr/local/java/jdk-17.0.9+9 /usr/local/java/latest
  2. 设置权限
    确保普通用户有执行权限:

    sudo chown -R $USER:$USER /usr/local/java

配置环境变量

手动安装时需配置JAVA_HOMEPATH,确保系统识别新JDK。

编辑系统环境变量文件

sudo nano /etc/profile

在文件末尾添加以下内容(以JDK 17为例):

export JAVA_HOME=/usr/local/java/latest
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

说明CLASSPATH在现代Java开发中非必需,但保留可兼容旧项目。

使配置生效

source /etc/profile  # 立即生效
# 或重启终端

验证环境变量

echo $JAVA_HOME  # 应输出 /usr/local/java/latest
echo $PATH       # 应包含 $JAVA_HOME/bin

卸载旧JDK(可选)

若旧JDK不再使用,可卸载以节省空间。

查看已安装JDK版本

java -version
javac -version

卸载旧版本

  • 包管理器安装的JDK
    Ubuntu/Debian: sudo apt purge openjdk-11-jdk -y
    CentOS/RHEL: sudo yum remove java-11-openjdk-devel -y

  • 手动安装的JDK
    直接删除目录:sudo rm -rf /usr/local/java/旧版本目录

    linux下如何升级jdk版本升级

清理环境变量

检查并编辑/etc/profile~/.bashrc等文件,删除旧JAVA_HOMEPATH相关配置,然后执行source生效。

验证升级结果

执行以下命令确认JDK版本已更新:

java -version
javac -version

预期输出应显示新版本(如OpenJDK 17.0.9),若仍显示旧版本,检查环境变量配置是否正确,或确认PATH中旧JDK路径未被优先覆盖。

相关问答FAQs

Q1: 升级JDK后,java -version仍显示旧版本,如何解决?
A: 可能原因:① 环境变量未正确配置或未生效,需检查/etc/profile~/.bashrc中的JAVA_HOMEPATH,并执行source;② PATH中旧JDK路径优先级更高,可通过echo $PATH查看路径顺序,将$JAVA_HOME/bin调整到旧路径之前;③ 存在多个JDK版本,可使用update-alternatives工具切换(CentOS/RHEL适用:sudo update-alternatives --config java)。

Q2: 如何在Linux系统中同时管理多个JDK版本并随时切换?
A: 可使用update-alternatives工具(需root权限):

  1. 安装多个JDK后,注册到系统 alternatives:
    sudo update-alternatives --install /usr/bin/java java /usr/local/java/latest/bin/java 1
    sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/latest/bin/javac 1
  2. 切换版本:sudo update-alternatives --config java,根据提示选择目标版本。
  3. 验证切换结果:java -version

    注:Ubuntu/Debian系统默认支持,CentOS/RHEL需确保alternatives包已安装(sudo yum install alternatives -y)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26625.html

(0)
酷番叔酷番叔
上一篇 2025年9月20日 05:44
下一篇 2025年9月20日 05:58

相关推荐

  • Linux中如何修改用户所属的用户组?详细步骤和命令是什么?

    在Linux系统中,用户组是管理文件权限和用户访问控制的核心机制,通过将用户划分到不同组,可以简化权限分配和安全管理,改变用户组通常涉及修改用户的主组、附加组,或调整文件/目录的所属组,以下是具体操作方法和注意事项,Linux用户组基础概念用户组分为主组(Primary Group)和附加组(Supplemen……

    2025年9月23日
    2600
  • Linux系统下如何查看CPU的具体型号信息?

    在Linux系统中,CPU型号是评估硬件性能、判断软件兼容性、优化系统配置的关键信息,无论是系统管理员进行性能调优,还是开发者确认编译环境,掌握查看CPU型号的方法都至关重要,本文将详细介绍多种命令行和图形界面方法,涵盖不同场景和权限需求,帮助用户快速获取所需信息,使用lscpu命令:最全面的CPU信息展示ls……

    2025年9月16日
    3100
  • Linux中如何彻底卸载GitLab?

    在Linux系统中卸载GitLab需要根据安装方式的不同采用不同的操作流程,常见的安装方式包括官方APT/YUM包安装、Docker容器安装以及源码编译安装,无论采用哪种方式,卸载前都建议备份重要数据(如仓库、数据库、配置文件等),避免因误操作导致数据丢失,以下是针对不同安装方式的详细卸载步骤:基于APT/YU……

    2025年8月23日
    4400
  • Linux top命令如何翻页查看更多进程信息?

    在Linux系统中,top命令是一个动态监控进程的工具,能够实时显示系统中运行的进程信息,包括进程ID(PID)、CPU占用率、内存使用量、命令名称等,当系统中的进程数量较多时,一屏无法完整显示所有进程信息,此时需要掌握top的翻页操作,以便查看完整的进程列表,本文将详细介绍top命令中翻页的具体方法、相关快捷……

    2025年9月13日
    3100
  • 如何将本地文件移入虚拟机Linux系统?

    在虚拟化环境中,将本地文件传输到Linux虚拟机是日常开发、运维或学习中的常见需求,根据虚拟机软件类型(如VMware、VirtualBox)、文件大小及使用场景(图形界面/命令行),可选择不同的传输方法,本文将详细介绍几种主流操作方式,涵盖准备工作、具体步骤及注意事项,帮助用户高效完成文件传输,使用共享文件夹……

    2025年8月29日
    3500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信