最近在做一个给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包版本兼容问题相关推荐

  1. 【FPGA】解决vivado工程版本兼容问题

    个人笔记. vivado不同版本之间有可能并不兼容,需要更改一些配置即可.我现在用的是vivado2017.4版本,现在想打开vivado2018.3版本的工程,但会出现警告,主要是版本不兼容导致. ...

  2. c语言 pdf支持库,解决支持库版本兼容问题:引入包时候support包有红色下划线

    如果引用的第三方库的支持库版本低于(或者不一致)app build.gradle中的支持库版本,可能会出现如下问题: all com.android.support libraries must us ...

  3. 安装flax INFO pip查看相关包版本兼容时间过长

    有一定的可能是pip版本较高,有条件的情况下可考虑pip降级版本. 若不能pip降低版本,可考虑绕过pip,直接使用git安装. 在环境下: git clone https://github.com/ ...

  4. Maven解决jar包版本冲突

    jar冲突原因: jar包冲突主要是由于依赖传递导致的,不同的jar包依赖同一个不同版本的jar包,导致冲突.可以看下下图. B和C都依赖D,但是不同的版本,所以在使用的过程中可能会出现问题. 依赖调 ...

  5. java9 多版本兼容jar_Java 9 多版本兼容 jar 包

    Java 9 多版本兼容 jar 包 多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本. 通过 --release 参数指定编译版本. 具体的 ...

  6. Idea中Maven报错:Failed to read artifact descriptor for jar包名.jar.jar包版本的解决方式

    Idea中Maven报错:Failed to read artifact descriptor for jar包名.jar.jar包版本的解决方式 故障现象 尝试解决 总结 故障现象 最近这种故障频发 ...

  7. Java9 jar兼容_java9新特性-6-多版本兼容jar包

    1.官方Feature 2.使用说明 当一个新版本的Java出现的时候,你的库用户要花费数年时间才会切换到这个新的版本.这就意味着库得去向后兼容你想要支持的最老的Java版本(许多情况下就是Java ...

  8. Maven:解决jar包冲突和企业开发常用编写

    QUESTION:Maven:解决jar包冲突和企业开发常用编写 目录 QUESTION:Maven:解决jar包冲突和企业开发常用编写 ANSWER: 一:Maven的作用 二:解决jar包冲突: ...

  9. 在IDEA中解决jar包冲突的神操作-必看,秒杀市面方法

    在开发过程中,经常会遇到导入jar包后jar包冲突的情况,大家也都知道,解决jar包冲突通常都比较麻烦,要找到多余的依赖,把低版本的依赖去掉.而大家通常能搜到IDEA解决jar包冲突的方法,应该是这样 ...

最新文章

  1. 来看看顶会大佬是如何研究计算机视觉的
  2. 解决HTML embed标签显示在div上层(not z-index)
  3. CSS块级元素与行内元素的区别和联系
  4. internal java compiler error_Java异常处理总结
  5. 3-5Tensor的属性
  6. Java中单例设计模式总结
  7. Cesium整体架构介绍
  8. 三点坐标求三角形的面积
  9. SimpleFs文件系统初步一(编译并挂载)
  10. 慕课软件质量保证与测试(第八章.软件评审概述)
  11. c语言bubblesort函数,C++实现冒泡排序(BubbleSort)
  12. DELL服务器运行硬件检测
  13. c9大学计算机系好的大学,C9顶尖高校所有自主招生专业大汇总
  14. 苹果手机换了屏显示无服务器,苹果手机出现“无法验证此 iPhone 屏幕是正品”怎么办...
  15. kafka中文文档new comsumer配置参数
  16. TiCDC系列分享-01-简述产生背景及使用概况
  17. AS3多线程快速入门(三):NAPE物理引擎+Starling
  18. JAVA编译一个原神抽卡模拟器
  19. Windows中查看8080端口的占用情况并关闭相关进程
  20. Nagios之配置介绍

热门文章

  1. GCD介绍(一): 基本概念和Dispatch Queue
  2. python线程唤醒_Python 并发编程(一)之线程
  3. canopen c++程序编写_JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?...
  4. python调用kafka拉取数据失败_无法使用kafkapython从另一个容器向Kafka容器发出请求...
  5. mysql variables 大记录 查询 慢_MySQL - 慢查询
  6. java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu
  7. android wifimanager权限,Android 6.0.1 - 权限问题= wifiManager.getScanResults()返回0
  8. Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...
  9. php 计算字符串相邻最大重复数_php查找字符串出现次数的方法
  10. vue中headers是什么_【vue】饿了么项目-header组件开发