如何解决 Unsupported major.minor version
的有关信息介绍如下:我们在 Eclipse 或者其他 IDE 中运行 Java 工程时,有时会遇到如下问题 :
java.lang.UnsupportedClassVersionError: 运行的具体类 : Unsupported major.minor version 52.0 (具体版本号,这里可以为其他数值......)
这个问题的根本原因是我们使用低版本的 JRE 去运行高版本 JDK 编译的 class 文件!
这个是不兼容的!
这篇经验就告诉大家如何查看问题的根源和如何解决这个问题!
先看看出错的情况
运行类,在控制台,我们看到这样的异常 "Unsupported major.minor version 52.0"
查看工程使用的 JRE 版本
在工程上右键,点击 "Properties" 菜单项,打开 "Properties" 窗口,点击 "Java Build Path" 可以看到我们使用的 JRE 为 1.6 版本!
查看 class 文件对应的 JDK 编译器的版本
这个需要使用 JAVA 提供给我们的一个工具 javap
我们首先找到 class 文件 (通常在工程目录下的 bin 子目录中),然后运行 cmd 打开命令行窗口,定位到 bin 目录即可,运行 javap -verbose 类的完整限定名
从运行后的打印结果中我们可以看到 major version : 52 这样的字样,这个表明这个 class 文件是 JDK 1.8 (或称为 8.0) 生成的!
看看 major version 和 JDK 版本的对应关系
这个图片来自网络,其稍微有点老了,并没有 major version : 52 对应的关系,其对应的就是 JDK 1.8(或称为 8.0)!
问题解决方法
找到问题根源了,解决思路就很简单,将编译工程使用的 JDK 版本和最后运行工程使用的 JRE 版本修改一样就没有问题了!
我们这里将工程的运行环境 JRE 由 1.6 修改为 1.8 即可!
然后我们再运行这个类,问题解决!!