因为JDK一般是向下兼容的,所以有时辰本地的JDK版本比类库的版本低,往往会抛出java.lang.UnsupportedClassVersionError: Bad version number in .class file。
有时辰须要确认到底是哪个类的版本低。所以须要确认类的编译JDK的版本。
可用二进制编辑对象(例如EmEditor)打开类文件,会有以下的显示:
CA FE BA BE 00 00 00?32.....
而上方的32是编译这个类的JDK版本,32默示是50,是JDK1.6;31默示49,是JDK1.5;30默示48,是JDK1.4......依次类推。
如编译上方的类的JDK为JDK1.6。所以你在景象是JDK1.6以下的引用这个类,就会抛出版本不合错误的异常。
本文介绍了解决因本地JDK版本低于类库版本导致的java.lang.UnsupportedClassVersionError异常的方法。通过使用二进制编辑工具查看.class文件头部,可以确定类文件的编译JDK版本,进而解决版本不匹配的问题。
2683

被折叠的 条评论
为什么被折叠?



