ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't

注:使用的普通web工程,非maven工程

       今天同事将spring从3.0版本升级到了3.24版本,而另外引入的Asm是3.14版本的jar,结果报jar包冲突了。

       分析:首先3.24版本spring-core核心jar包中已经有了内嵌的Asm的jar包,而这个内嵌的Asm中的ClassVisitor.class是一个抽象类,而Asm3.14版本中的ClassVisitor.class确是一个接口。

         当时想到了就将3.14版本的Asm删除了,结果又报了ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't...的错误。

         看到这个错误,第一想到了是不是jdk版本的问题,我自己的jdk版本是1.8的,所以怀疑是spring3.x版本可能不支持jdk1.8。查网上也是说spring3.28的版本以下不支持jdk1.8的jar,所以需要将spring升级到4.x版本。在这里我没有将spring升级,所以将jdk1.8降到jdk1.7。问题得以解决。

总结:

两种方案:

1、将jdk修改为1.7

2、将spring升级为4.x。

注意:在运行的jre版本最后高于等于jdk的版本。

 

你可能感兴趣的:(编码过程中遇到的问题)