检查当前Java版本
运行以下命令确认系统当前安装的Java版本及路径:
java -version
which java # 查看Java可执行文件路径
卸载旧版本Java(可选但推荐)
若系统已安装旧版本(如OpenJDK 8),建议先卸载以避免冲突:
# 查找已安装的Java包(以OpenJDK为例)
rpm -qa | grep java
# 卸载指定包(如java-1.8.0-openjdk-devel)
sudo yum remove -y java-1.8.0-openjdk-devel
# 彻底卸载所有Java相关包(谨慎使用)
sudo yum remove -y $(rpm -qa | grep java)
YUM是CentOS默认的包管理工具,可自动解决依赖关系,操作简便。
更新YUM仓库
sudo yum update -y
搜索可用Java版本
sudo yum search java | grep -E "openjdk|jdk"
# 示例输出:java-11-openjdk-devel.x86_64、java-17-openjdk-devel.x86_64
安装指定版本
以OpenJDK 11为例:
sudo yum install -y java-11-openjdk-devel
若需安装Oracle JDK,需先下载对应RPM包(如jdk-11.0.xx-linux-x64.rpm),再通过YUM本地安装:
sudo yum localinstall -y jdk-11.0.xx-linux-x64.rpm
验证安装
java -version
# 预期输出:openjdk version "11.0.xx" 202x-xx-xx LTS
若需安装特定版本的Oracle JDK(如17),可通过以下步骤操作:
下载JDK压缩包
访问Oracle官网或OpenJDK镜像站(如AdoptOpenJDK),下载对应Linux版本的.tar.gz文件(如jdk-17.0.2_linux-x64_bin.tar.gz)。
解压并移动到目标目录
# 创建Java安装目录(可选)
sudo mkdir -p /usr/lib/jvm
# 解压到目标目录
sudo tar -zxvf jdk-17.0.2_linux-x64_bin.tar.gz -C /usr/lib/jvm
配置环境变量
编辑全局环境变量文件(如/etc/profile):
sudo vi /etc/profile
在文件末尾添加以下内容(替换为实际安装路径):
export JAVA_HOME=/usr/lib/jvm/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存后使配置生效:
source /etc/profile
验证安装
java -version
javac -version # 检查编译器是否可用
若系统需保留多个Java版本,可使用以下工具切换默认版本:
alternatives命令(CentOS内置)alternatives可管理系统中的多版本命令链接:
# 注册Java版本(以OpenJDK 8和11为例)
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 2
# 切换默认版本
sudo alternatives --config java
# 根据提示输入对应版本的编号
SDKMAN可便捷管理多个Java版本(包括OpenJDK、Oracle JDK):
# 安装SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 查看可用Java版本
sdk list java
# 安装指定版本(如Java 17)
sdk install java 17.0.2-open
# 切换全局默认版本
sdk default java 17.0.2-open
# 临时切换版本(仅当前终端有效)
sdk use java 11.0.15-open
sudo或root用户权限。source命令使变更生效。通过以上步骤,可在CentOS系统上完成Java版本的升级及多版本管理。根据实际需求选择合适的方法,优先推荐使用YUM或SDKMAN以简化操作。