关于Java 的 poi jar包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Java 的 poi jar包相关的知识,希望对你有一定的参考价值。

情况是这样的,公司新开发一个功能,用到了导入导出excel。公司采用的组件中的JAR包里包含了老版本的POI (3.0)。我下载使用了“poi-3.7-beta3-20100924”。产生了jar包冲突。
代码完成,功能也通过。可是其他用到poi-3.0的功能却出现异常,原因是setSheetName()这个方法的参数发生了变化。3.0是一个String参数,而3.7就是String+int 两个参数了。难道poi不能向下兼容?而且,我把3.7的jar包放置到了我的功能模块下,为什么其他模块也能调用到poi3.7?是版本新的缘故么?
有没有什么方法能解决这种冲突?

如果导入多个版本的jar包,且jar包中的包.类名相同的话,默认会按照classpath导入的顺序选择,你这里导入的3.7在3.0的classpath之前,因此系统选择的是你新加入的3.7版本。而且这种情况只能选择一个版本来完成,无法两个版本一起使用。(因为包名和类名相同,但方法不同。)
你只能删除你自己的jar包,使用本身系统中的3.0来完成
参考技术A 对于同一种jar包,同一个项目里是绝对要避免存在多个版本的,否则会产生意想不到的兼容性问题,很多开源的工具不同版本见的兼容性都有问题,你必须通过保留唯一版本的jar包解决这种问题。

Java 读取Excel2007 jar包冲突的问题(org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetExcepti

1.jar包冲突报错问题

2.使用的jar包,以及重复jar包

3.删除重复jar包

 

以上是关于关于Java 的 poi jar包的主要内容,如果未能解决你的问题,请参考以下文章

java读取txt/pdf/xls/xlsx/doc/docx/ppt/pptx

关于java使用POI导出ppt ,其中表格setText 失败问题

JAVA关于引用外部jar包的问题

关于java动态加载jar的问题?

Java 读取Excel2007 jar包冲突的问题(org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetExcepti

jar包