今天在工作中给项目添加模块需要导入poi-3.8.jar,项目中原先有poi包,但是版本太低,没有我需要用到的方法,项目中一些原来的功能需要老版本支持,又不能删掉原来的poi包,为了解决导入新的poi包后jar包冲突问题,使用jarjar.jar工具修改poi-3.8jar的包名。
Eclipse的导入了poi包的项目中可以看到poi-3.8.jar中的内容,我要改的就是org.apache.poi的名字。
首先,需要jarjar.jar和要改名的poi-3.8.jar。
jarjar.jar下载地址:https://download.csdn.net/download/weixin_42310890/10569705
将jarjar.jar和poi-3.8.jar单独放到一个文件夹下,我在D盘的java文件夹下创建了一个jarjar文件夹。
在jarjar文件夹下新建一个txt文本文件,我将它取名rule.txt。打开rule.txt,输入如下内容并保存。org.apache.poi为要修改的包名,org.apache.mypoi是我给它起的新名。
rule org.apache.poi.** org.apache.mypoi.@1
打开运行输入cmd,打开命令窗口。将路径切换到jar包所在文件夹D:\java\jarjar。
接着输入java -jar jarjar-1.4.jar process rule.txt poi-3.8.jar mypoi.jar,格式为java -jar "jarjar工具名" process "要运行的文本名" "原jar包名" "新jar包名"。
java -jar jarjar-1.4.jar process rule.txt poi-3.8.jar mypoi.jar
运行过之后显示当前路径,说明成功。
文件夹中新增了一个mypoi.jar包。
项目中可直接引用mypoi.jar包,它里边的方法和poi-3.8.jar一样,完全不用担心冲突问题。