项目场景:
在Linux系统下安装jdk并且进行环境变量配置后,原来安装的jdk1.8变成了jdk1.7!!!!
问题描述:
当编译运行java文件后,控制台报错:
Exception in thread “main” java.lang.UnsupportedClassVersionError: A : Unsupported major.minor version 52.0
Exception in thread "main" java.lang.UnsupportedClassVersionError: A : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:48
原因分析:
这是因为jdk版本与jre版本不一致导致的,在查询资料后,我分别查询了jdk、jre的版本。
[li@localhost myfile]$ java -version
//查询jdk版本
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
//查询jre版本
[li@localhost myfile]$ javac -version
javac 1.8.0_11
可以看到java version “1.7.0_45”,javac 1.8.0_11,一个1.7,因此会报错,而且jdk的版本是openjdk,这个是linux自带的jdk,这就是这次报错的根源
解决方案:
1、进入root
su
[li@localhost /]$ su
密码:
[root@localhost /]# java -version
2、查询openjdk
rpm -qa|grep java
[root@localhost /]# rpm -qa|grep java
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
3、删除openjdk
rpm -e --nodeps
[root@localhost /]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
[root@localhost /]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
[root@localhost /]# rpm -qa|grep java
tzdata-java-2013g-1.el6.noarch
再次查询后发现删除成功
4、配置环境变量
//修改权限
[root@localhost /]# chmod +w etc/profile
//打开配置文件
[root@localhost /]# vi etc/profile
//使环境变量生效
[root@localhost /]# source etc/profile
//编写以下两句代码
exprot JAVA_HOME=你的jdk安装路径
exprot PATH=$PATH:$JAVA_HOME/bin
//查看环境变量是否成功
[root@localhost /]# echo $PATH
/usr/lib64/qt3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/li/bin:/home/li/jdkhome/jdk1.8.0_11/bin
//出去到任意目录检查
[root@localhost /]# java -version