一、更新前准备
/usr/lib/jvm)和关键配置文件(如/etc/profile)。sudo cp -r /usr/lib/jvm /usr/lib/jvm_backup
sudo cp /etc/profile /etc/profile.bak
java -version # 查看Java运行时版本
javac -version # 查看Java编译器版本
which java # 查看Java可执行文件路径(通常位于/usr/bin/java)
二、通过包管理器更新(推荐:简单、安全)
适用于需要稳定、受支持的Java版本(如OpenJDK),推荐使用CentOS自带的yum包管理器。
sudo yum remove java-1.8.0-openjdk java-1.8.0-openjdk-devel
yum能获取最新的软件包信息。sudo yum update
yum会自动解决依赖关系。sudo yum install java-17-openjdk-devel
java -version # 应输出类似“openjdk version "17.0.xx"”
javac -version # 应与新Java版本一致
三、手动安装更新(适用于特定版本需求) 若包管理器中没有所需版本(如Oracle JDK最新版),可通过手动下载安装包实现。
.tar.gz格式)。
adoptopenjdk-17_hotspot_linux-x64_bin.tar.gz。/usr/lib/jvm(系统默认Java目录)。sudo tar zxvf adoptopenjdk-17_hotspot_linux-x64_bin.tar.gz -C /usr/lib/jvm
/etc/profile,添加新Java路径。sudo vi /etc/profile
在文件末尾添加(替换jdk-17为实际目录名):export JAVA_HOME=/usr/lib/jvm/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version
javac -version
四、管理多个Java版本(可选) 若需在同一系统保留多个Java版本,可使用以下工具快速切换:
alternatives命令(系统自带):
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 1
sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17/bin/javac 1
sudo alternatives --config java # 选择对应版本的编号
sudo alternatives --config javac
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java # 查看可用版本
sdk install java 17.0.2-open # 安装指定版本
sdk use java 17.0.2-open # 切换为当前会话版本
sdk default java 17.0.2-open # 设置为全局默认版本
五、常见问题排查
PATH是否指向新Java的bin目录(如/usr/lib/jvm/jdk-17/bin),可通过echo $PATH确认。sudo提升权限,避免文件无法写入系统目录。java-1.8.0-openjdk-devel),再重新安装。