jar class 文件替换最好使用jar 自带的命令行工具

最近在进行一个系统fix的时候,按照最简单的方法就是自己unzip jar 文件,之后通过编译代码,然后替换class文件,之后通过jar cvf 进行重新压缩,但是每次替换都会提示spring bean 存在多个,原始的就没有问题,经过一些尝试发现是此方法不太好,部分系统的加载的jar 会有差异影响(详细jar 对比没做,主要是里边的class 太多了),结果测试比较靠谱的解决方法还是使用官方自带命令的jar uf

参考命令

  • 命令
jar uf jar-file input-file(s)

简单说明: jar-file 是原始文件,input-file(s) 是我们需要替换的class 文件,同时注意需要保持与原有一样的目录结构,但是如果是基于mvn 构建的项目那就没问题了,直接target 的classes 就行了

说明

当然基于win rar 工具的也是一种方法,但是似乎不太可靠,官方工具相对可靠,同时win rar 不利于ci/cd 以及自动化

参考资料

https://docs.oracle.com/javase/tutorial/deployment/jar/update.html

posted on 2024-04-10 10:10  荣锋亮  阅读(88)  评论(0编辑  收藏  举报

导航