Linux系统jdk版本变更操作说明

Linux系统jdk版本变更操作说明

一、jdk版本变更

(一)下载jdk

jdk下载地址:Java Downloads | Oracle

jdk-8u341-linux-x64.tar.gz为例:

(二)上传jdk到指定目录

新建jdk目录/usr/jdk,并上传jdk文件到/usr/jdk

[test@localhost ~]$ mkdir /usr/jdk

[test@localhost ~]$cd/usr/jdk/

[test@localhost jdk]$ rz

 ZMODEM  Session started            e50

------------------------            

 Sent  jdk-8u341-linux-x64.tar.gz              

[test@localhost jdk]$ ls

jdk-8u341-linux-x64.tar.gz

(三)解压jdk文件

解压jdk-8u341-linux-x64.tar.gz文件

[test@localhost jdk]$ tar zxvf jdk-8u341-linux-x64.tar.gz

[test@localhost jdk]$ ls

jdk1.8.0_341  jdk-8u341-linux-x64.tar.gz

(四)给jdk文件夹创建软链接(建议)

添加软链接的目的是后续变更jdk版本只需要变更jdk_using的目标文件即可,无需修改配置文件。

PS:此步骤非必须,如未执行,后续修改配置步骤需注意填写jdk文件真实的绝对路径

[test@localhost jdk]$ ln -s jdk1.8.0_341 jdk_using

[test@localhost jdk]$ ls

jdk1.8.0_341  jdk-8u341-linux-x64.tar.gz  jdk_using

[test@localhost jdk]$ ll -n jdk_using

lrwxrwxrwx. 1 1000 1000 12 8  1 09:28jdk_using->jdk1.8.0_341

(五)配置当前用户环境变量~/.bash_profile

查看当前jdk版本

[test@localhost jdk]$ java -version

openjdk version"1.8.0_262"

OpenJDK Runtime Environment (build 1.8.0_262-b10)

OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

修改系统配置文件~/.bash_profile,添加JAVA_HOME等系统参数,并source

[test@localhost jdk]$ vim ~/.bash_profile

#在配置文件底部添加如下配置

#如未执行步骤4,则配置中的jdk_using需要配置为jdk的真实的绝对路径

exportJAVA_HOME=/usr/jdk/jdk_using

exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportPATH=$PATH:$JAVA_HOME/bin

[test@localhost jdk]$ tail -3 ~/.bash_profile

export JAVA_HOME=/usr/jdk/jdk_using

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

[test@localhost jdk]$ source ~/.bash_profile

查看变更后的jdk版本

[test@localhost jdk]$ java -version

openjdk version"1.8.0_262"

OpenJDK Runtime Environment (build 1.8.0_262-b10)

OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

此时发现未修改成功,查看常见问题(一)修改~/.bash_profile,并且source,但jdk版本不是目标版本

二、常见问题

(一)修改~/.bash_profile,并且source,但jdk版本不是目标版本

查看当前jdk版本

[test@localhost jdk]$ java -version

openjdk version"1.8.0_262"

OpenJDK Runtime Environment (build 1.8.0_262-b10)

OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

查看是否使用系统默认的open-jdk

[test@localhost ~]$ which java

/usr/bin/java

[test@localhost ~]$ whereis java

java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/jdk/jdk1.8.0_341/bin/java /usr/share/man/man1/java.1.gz

[test@localhost ~]$ rpm -qa | grep java

java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64

python-javapackages-3.4.1-11.el7.noarch

tzdata-java-2020a-1.el7.noarch

java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

javapackages-tools-3.4.1-11.el7.noarch

java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

发现系统环境变量中存在多个onpen-jdk版本

卸载open-jdk

[test@localhost ~]$ sudo yum remove -y java*

已加载插件:fastestmirror, langpacks

正在解决依赖关系

……

依赖关系解决

……

移除 5软件包(+4依赖软件包)

安装大小:209 M

Downloading packages:

Running transaction check

Running transactiontest

Transactiontestsucceeded

Running transaction

  正在删除   ……                       

完毕!

查看是否成功卸载open-jdk

[test@localhost ~]$ rpm -qa | grep java

python-javapackages-3.4.1-11.el7.noarch

tzdata-java-2020a-1.el7.noarch

检查卸载open-jdk后jdk版本(如未更新,则再执行一遍source ~/.bash_profile)

[test@localhost ~]$ java -version

java version"1.8.0_341"

Java(TM) SE Runtime Environment (build 1.8.0_341-b10)

Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)

Jdk版本已成功变更。

(二)修改~/.bash_profile,并且source,提示“Permission denied/权限不够”

[test@localhost ~]$ java -version

-bash: /usr/jdk/jdk_using/bin/java:权限不够

查看jdk文件是否有执行权限

[test@localhost ~]$ ll -d /usr/jdk/jdk1.8.0_341/

drw-r--r--. 8 test test 273 8  1 09:22/usr/jdk/jdk1.8.0_341/

发现jdk文件无执行权限,需要赋权

[test@localhost ~]$ chmod -R 755 /usr/jdk/jdk1.8.0_341/

[test@localhost ~]$ ll -d /usr/jdk/jdk1.8.0_341/

drwxr-xr-x. 8 test test 273 8  1 09:22/usr/jdk/jdk1.8.0_341/

赋权后变更正常

[test@localhost ~]$ java -version

java version"1.8.0_341"

Java(TM) SE Runtime Environment (build 1.8.0_341-b10)

Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)

(三)重启中间件应用报错“The JRE was not found in directory ……”

此问题为jdk文件缺少文件,建议重新上传jdk包。

(四)提示“-bash: /usr/jdk/jdk_using/bin/java:无法执行二进制文件: 可执行文件格式错误”

[test@localhost jdk] $ java -version

-bash: /usr/jdk/jdk_using/bin/java:无法执行二进制文件:可执行文件格式错误

查看下载的jdk版本和系统架构是否一致。

[test@localhost bin]$ uname -r

5.11.12-300.fc34.aarch64

发现系统架构为ARM架构,而本例中使用的jdk为X64版本,与系统版本不兼容。

建议至官网下载系统对应版本jdk,重新上传。


版权声明:本文为qq_35361217原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。