检查当前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以简化操作。