jarjar.jar解决jar包版本兼容问题
最近在做一个给excel添加水印的需求,需要用到新版poi,但是老版本的poi不能丢弃,因为word转html的功能是基于老版的poi的,因此只能对更改新版本poi的的package,笔者使用的是通过jarjar.jar实现的方式,不嫌麻烦的童学可以下载poi的源码jar包,解压后通过idea修改package再通过java -jar命令重新打包。
以下是笔者fastjson-1.2.38.jar与poi-3.14.jar的修改过程
编写rule.txt(替换规则)
rule com.alibaba.fastjson.** fk.alibaba.fastjson.@1
目录结构如下:
在当前目录下开启cmd,输入如下命令:
如果没有报错就说明是ok了,报错的话可以检查下java环境变量是否配置好了。
通过winrar打开生成的fkfastjson-1.2.38.jar,
可以看到已经成功了。
笔者在对poi-4.1.0.jar进行类似操作的时候发现并不成功,而是另外生成了一个文件夹,新文件夹里面并没有对应的所有class文件,对3.*版本的poi又是成功的,猜测是poi版本或者是jarjar版本的问题,要是有小伙伴知道原因的话,欢迎下方评论。
附jarjar.jar资源下载:https://download.csdn.net/download/qq_41633199/12185203
jarjar.jar解决jar包版本兼容问题相关推荐
- 【FPGA】解决vivado工程版本兼容问题
个人笔记. vivado不同版本之间有可能并不兼容,需要更改一些配置即可.我现在用的是vivado2017.4版本,现在想打开vivado2018.3版本的工程,但会出现警告,主要是版本不兼容导致. ...
- c语言 pdf支持库,解决支持库版本兼容问题:引入包时候support包有红色下划线
如果引用的第三方库的支持库版本低于(或者不一致)app build.gradle中的支持库版本,可能会出现如下问题: all com.android.support libraries must us ...
- 安装flax INFO pip查看相关包版本兼容时间过长
有一定的可能是pip版本较高,有条件的情况下可考虑pip降级版本. 若不能pip降低版本,可考虑绕过pip,直接使用git安装. 在环境下: git clone https://github.com/ ...
- Maven解决jar包版本冲突
jar冲突原因: jar包冲突主要是由于依赖传递导致的,不同的jar包依赖同一个不同版本的jar包,导致冲突.可以看下下图. B和C都依赖D,但是不同的版本,所以在使用的过程中可能会出现问题. 依赖调 ...
- java9 多版本兼容jar_Java 9 多版本兼容 jar 包
Java 9 多版本兼容 jar 包 多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本. 通过 --release 参数指定编译版本. 具体的 ...
- Idea中Maven报错:Failed to read artifact descriptor for jar包名.jar.jar包版本的解决方式
Idea中Maven报错:Failed to read artifact descriptor for jar包名.jar.jar包版本的解决方式 故障现象 尝试解决 总结 故障现象 最近这种故障频发 ...
- Java9 jar兼容_java9新特性-6-多版本兼容jar包
1.官方Feature 2.使用说明 当一个新版本的Java出现的时候,你的库用户要花费数年时间才会切换到这个新的版本.这就意味着库得去向后兼容你想要支持的最老的Java版本(许多情况下就是Java ...
- Maven:解决jar包冲突和企业开发常用编写
QUESTION:Maven:解决jar包冲突和企业开发常用编写 目录 QUESTION:Maven:解决jar包冲突和企业开发常用编写 ANSWER: 一:Maven的作用 二:解决jar包冲突: ...
- 在IDEA中解决jar包冲突的神操作-必看,秒杀市面方法
在开发过程中,经常会遇到导入jar包后jar包冲突的情况,大家也都知道,解决jar包冲突通常都比较麻烦,要找到多余的依赖,把低版本的依赖去掉.而大家通常能搜到IDEA解决jar包冲突的方法,应该是这样 ...
最新文章
- 来看看顶会大佬是如何研究计算机视觉的
- 解决HTML embed标签显示在div上层(not z-index)
- CSS块级元素与行内元素的区别和联系
- internal java compiler error_Java异常处理总结
- 3-5Tensor的属性
- Java中单例设计模式总结
- Cesium整体架构介绍
- 三点坐标求三角形的面积
- SimpleFs文件系统初步一(编译并挂载)
- 慕课软件质量保证与测试(第八章.软件评审概述)
- c语言bubblesort函数,C++实现冒泡排序(BubbleSort)
- DELL服务器运行硬件检测
- c9大学计算机系好的大学,C9顶尖高校所有自主招生专业大汇总
- 苹果手机换了屏显示无服务器,苹果手机出现“无法验证此 iPhone 屏幕是正品”怎么办...
- kafka中文文档new comsumer配置参数
- TiCDC系列分享-01-简述产生背景及使用概况
- AS3多线程快速入门(三):NAPE物理引擎+Starling
- JAVA编译一个原神抽卡模拟器
- Windows中查看8080端口的占用情况并关闭相关进程
- Nagios之配置介绍
热门文章
- GCD介绍(一): 基本概念和Dispatch Queue
- python线程唤醒_Python 并发编程(一)之线程
- canopen c++程序编写_JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?...
- python调用kafka拉取数据失败_无法使用kafkapython从另一个容器向Kafka容器发出请求...
- mysql variables 大记录 查询 慢_MySQL - 慢查询
- java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu
- android wifimanager权限,Android 6.0.1 - 权限问题= wifiManager.getScanResults()返回0
- Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...
- php 计算字符串相邻最大重复数_php查找字符串出现次数的方法
- vue中headers是什么_【vue】饿了么项目-header组件开发