1. 程式人生 > >Java - Class版本號和UnsupportedClassVersionError

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的版本比類版本號相同或更高就可以了。

參考連結