Java - Class版本號和UnsupportedClassVersionError
阿新 • • 發佈:2018-11-12
問題分析
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的版本比類版本號相同或更高就可以了。