最近在比较阿里巴巴的easyexcel和easypoi的excel导出功能哪个强大。两者的demo我都是写在同一个工程里面的,easyexcel的demo是先写的,使用起来方便简洁。然后开始写easypoi的demo时,首先出现了依赖下载不了,依赖能下载之后,还出现了下面的乱七八糟的问题:
Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: cn/afterturn/easypoi/excel/entity/ExportParams Unsupported major.minor version 52.0
刚开始我是以为easypoi的依赖包没有完整下下来,后来检查发现应该全部下载了。后来我想是不是依赖没有添加全,去easypoi的官方网站看,我的依赖使用应该是没有问题的,但是我还是把easypoi的版本从4.0.0降到了3.30,但是demo运行起来还是报错。后来我想到easyexcel也是依赖poi的,是不是他俩又版本依赖的冲突。于是我把easyexcel给注释了,于是我就成功了!
~我嘞个去!!!!!
出现第一个错误就是因为easyexcel和easypoi的依赖有冲突。出现第二个错误是英文,使用的easypoi的版本过高,我使用的是easypoi4.0.0,他需要的jdk的版本是jdk8以上的。
在第三方jar包下会存在一个META-INF目录,该目录下有一个MANIFEST.MF文件,这个文件以键值对的形式存储一些关于jar包的关键信息。
下面我以easypoi-base的MANIFEST.MF文件做为示例:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: jueyue Created-By: Apache Maven 3.1.1 Build-Jdk: 1.8.0_144
可是一个.jar文件中,如果没有这个字段,就必须通过下面一种方法来查看
通过反编译.class文件来查看
解压.jar包,能得到.class文件。用JDK自带的javap反编译.class文件,用如下命令:
javap -verbose Configuration.class #查看得到的信息中,major version属性的内容,如下 major version: 52
说明这个.class文件是由JDK1.8编译得到的。
注意:一个.jar包中可能有多个.class文件,每个.class的JDK版本可能会不一样(编译器多个项目设置不同)
我电脑上安装的是jdk7。所以解决办法是删掉easyexcel的依赖,使用easypoi运行和自己jdk相同版本的就行了
最后更新于 2019-05-17 11:59:07 并被添加「java easypoi」标签,已有 2 位童鞋阅读过。