卸载
// 查询是否安装 jdk
rpm -qa | grep jdk
rpm -qa | grep java
// 卸载安装的 jdk
yum -y remove java*
yum 查询支持的版本
// 可以先更新一下 yum 源,以便支持最新版本
yum -y update
// 列出 jdk 所有大版本(每个大版本默认使用最新子版本)
yum list java*
举例结果:
java-1.6.0-openjdk.x86_64
java-1.7.0-openjdk.x86_64
java-1.8.0-openjdk.x86_64
// 列出 jdk 所有大版本和子版本,(如列出 1.8 下的所有子版本)
yum --showduplicate list java* | grep 1.8.0
举例结果:
1.8.0.181-7.b13.el7
1.8.0.191.b12-1.el7_6
1.8.0.212.b04-0.el7_6
// 列出每个大版本的名称(只名称,没有列出版本号)
yum search java | grep jdk
// 安装前建议先查看要安装的版本的子版本号为奇数(1.8.0.191)还是偶数(1.8.0.212),建议安装奇数版本,因为奇数版本经过了所有检验,偶数版本包含未检验的内容,可能有BUG(官方文档说明的)。经过长时间使用,确实发现偶数版本有些BUG。
// 安装大版本的最新子版本(不建议使用,先查看子版本号是否为奇数)
yum -y install java-1.8.0-openjdk.x86_64
// 安装指定大版本和子版本(这里建议安装奇数子版本,如1.8.0.191)
yum -y install java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
// 安装完毕后,查看是否安装成功
java -version
举例结果:
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
安装jdk
原jdk7位置:/usr/java/jdk1.7.0_80
新jdk8位置:/usr/java/jdk1.8.0_212
[root@localhost ~] which java
/usr/bin/java
[root@localhost ~] rm -f /usr/bin/java && ln -s /usr/java/jdk1.8.0_212/bin/java /usr/bin/java
[root@localhost ~]
更改环境变量,将原来JAVA_HOME指向1.7的路径更改成1.8的
[root@localhost ~] vi /etc/profile
#export JAVA_HOME=/usr/java/jdk1.7.0_80
export JAVA_HOME=/usr/java/jdk1.8.0_212
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效
[root@localhost ~] source /etc/profile
再查看当前java版本
[root@localhost ~] java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
升级JDK
$ cat scripts/openjdk_upgrade.sh
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
email="zhangnq@baidu.com"
#send email
sendEmail(){
curl -X POST \
--data-urlencode "token=zaq12wsx" \
--data-urlencode "subject=$1" \
--data-urlencode "content=$2" \
--data-urlencode "email=$3" \
http://ops.baidu.chekiang.info:8005/api/email/send
}
#first check
version=`/usr/bin/java -version 2>&1`
res=$?
if [ $res -ne 0 ];then
sub="get java version error."
ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
msg="IP: $ip"
sendEmail "$sub" "$msg" "$email"
exit 1
fi
count=`echo $version|grep '1.8.0_'|grep -v grep|wc -l`
if [ $res -eq 0 -a $count -eq 1 ];then
echo "jdk 1.8 is installed,exit."
exit 0
fi
#start to upgrade
add-apt-repository ppa:openjdk-r/ppa -y
apt-get update
apt-get install openjdk-8-jdk -y
update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
update-alternatives --set jps /usr/lib/jvm/java-8-openjdk-amd64/bin/jps
update-alternatives --set jstack /usr/lib/jvm/java-8-openjdk-amd64/bin/jstack
#last check
ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
version=`/usr/bin/java -version 2>&1`
res=$?
if [ $res -ne 0 ];then
sub="get java version error."
msg="IP: $ip"
sendEmail "$sub" "$msg" "$email"
exit 1
fi
count=`echo $version|grep '1.8.0_'|grep -v grep|wc -l`
if [ $res -eq 0 -a $count -ne 1 ];then
sub="upgrade java error."
msg="IP: $ip"
sendEmail "$sub" "$msg" "$email"
exit 1
fi
参考链接 :
centos7更换jdk版本 :https://www.jianshu.com/p/3f85ec867293