标题党了, 各位,老项目中使用的 POI 是 3.9 版本,现在想要使用 easyExcel,它最低引入的是 3.17 的 POI,如何两个 jar 包共存呐?求各位指点一下
标题党了, 各位,老项目中使用的 POI 是 3.9 版本,现在想要使用 easyExcel,它最低引入的是 3.17 的 POI,如何两个 jar 包共存呐?求各位指点一下
1
fiveelementgid Jan 13, 2021 via Android 不会吧,不会吧,不会还有人在这问而不是自己去翻 document 吧。
|
2
xiaTianChiXiGua OP @fiveelementgid 真没招了 搞了两天了 没搞定
|
3
crazyxtcn Jan 13, 2021
这个我遇到过,POI 各个版本之间改动挺大的,当时两个 jar 依赖了不同版本的 poi,不管怎么调,运行时都会遇到 NoSuchMethod 之类的异常,最后用原生 poi 手写的导出
|
4
xiaTianChiXiGua OP @crazyxtcn 我看了一下如果 3.9 升级到 3.17 项目里要替换不少的代码,一不小心就要出 bug 。。 如果继续用老版本的 POI,又感觉有点恶心 想试试 easyexcel
|
5
optional Jan 13, 2021 via Android
别试了,不太好用
|
6
xiaTianChiXiGua OP @optional 继续用 POI 老版本写代码?
|
7
xcstream Jan 13, 2021
恭喜你发现了个 java 的硬伤
|
8
redtea Jan 13, 2021 方案一:自定义 ClassLoader 加载 jar
方案二:改造成微服务调用 |
9
c2const Jan 13, 2021
2333,从安全角度给你支个招,用 zkm 之类的混淆软件去把新版本的 POI jar 包的依赖全部混淆,本身对外接口(函数名、类名)都不变,最后再把 x.y.A.class 改成 x2.y.A.class 之类避免冲突,类似 c 艹的 namespace 一样,避免调用冲突。
|
10
purensong Jan 13, 2021 问个问题还阴阳怪气的,建议多看看别人怎么问的
|
11
nl101531 Jan 13, 2021 via iPhone
这种只能隔离。。。一个 jar 脱离 maven,使用单独的类加载器加载执行
|
12
qwerthhusn Jan 13, 2021
找个工具,把高版本的 jar 包的包名完全改了。导入到私服
|
13
wander639 Jan 13, 2021 via iPhone
不会吧,看这个标题还以为是写教程的
|
14
darksword21 PRO 这种标题在虎扑那看得想骂人,建议不要在这里搞
|
15
zollum Jan 13, 2021
手动打包 easyexcel 源码,修改 pom.xml ,打 shade 包,关键字 class relocation 。
|
16
Takamine Jan 13, 2021 via Android
pandas, csv, xlrd 它不香吗。
|
17
lucahan Jan 13, 2021 via Android
不会吧,除了虎扑还真有人用这种标题
|
18
czzhengkw Jan 13, 2021
不会吧,这样问问题不会被打吗?
|
19
SkyLine7 Jan 14, 2021
小丑竟是我自己
|
20
xiaTianChiXiGua OP @darksword21 看来不少虎扑老哥啊 哈哈
|