原因总结
JDK版本的问题;编译时的jdk和线上的JDK版本不一致
怎么解决
把编译时的jdk版本号转换成线上的jdk版本
确定编译jdk
这里我介绍用class文件确定
选择某一个class文件
用notepad++打开,如果是下面这样,就安装 Hex editor 插件
然后按Ctrl+Alt+Shift+H ,便会转换成16进制
前4个字节 ca fe ba be 是固定的,挨着后面的2个字节 00 00 是次版本号,次版本号后面的2个字节00 32 是jdk的版本号
便可以确定编译时使用的jdk。
回到问题
Unsupported major.minor 52.0
报错的数字是十进制的,这里的 52 对应的版本就是jdk8,也就是说不支持 jdk8,而class文件中版本号是32,对应的是jdk1.6,
现在就可以把文件以jdk1.6编译,就正常了