Java - Class版本号和UnsupportedClassVersionError

Posted 雨临Lewis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - Class版本号和UnsupportedClassVersionError相关的知识,希望对你有一定的参考价值。

问题分析

Java是向下兼容的,每一个jdk版本都有对应的class版本号(major + minor version numbers);如果用低版本的jvm去加载高版本jdk编译的类,就会报错:java.lang.UnsupportedClassVersionError

源码中关于这个UnsupportedClassVersionError的注释如下:

/**
* Thrown when the Java Virtual Machine attempts to read a class
* file and determines that the major and minor version numbers
* in the file are not supported.
*
* @since 1.2
*/

Java版本对应的Class版本号

Java版本 Class版本
JDK1.0.2 45.0~45.3
JDK1.1 45.0~46.0以下
J2SE1.2 46.0
J2SE1.3 47.0
J2SE1.4 48.0
JavaSE5 49.0
JavaSE6 50.0
JavaSE7 51.0
JavaSE8 52.0

解决方法

把类重新用当前的jdk版本去编译,只要确保jvm的版本比类版本号相同或更高就可以了。

参考链接

以上是关于Java - Class版本号和UnsupportedClassVersionError的主要内容,如果未能解决你的问题,请参考以下文章

js获取id号和class类名的区别

[环境配置][转载]ubuntu software 软件下载失败 unsupport proxy configured

Android异常篇 The option setting ‘android.disableResourceValidation=true‘ is experimental and unsupport

ElasticSearch为索引库添加静态映射报:Failed to parse mapping [properties]: Root mapping definition has unsupport

linux杂谈查看centOS系统的版本号和内核号

Android Studio 打包apk,自动追加版本号和版本名称