Java替换jar包中class文件

在更新java应用版本的运维工作中,由于一些原因,开发没办法给到完整的jar包,这个时候,就可以只将修改后的某个Java类的class文件替换掉原来iar包中的class文件,重新启动服务即可:

1、将jar包和将要替换的class文件放到同一个目录下;

2、查找jar包中xxxdemo.class文件所在的具体路径

bash 复制代码
jar -tvf xxx.jar | grep xxx.class

3、将xxx.jar中指定的xxx.class解压出来

bash 复制代码
jar -xvf xxx.jar  xxx/xxx/xxx/xxx/xxx/xxx.class(路径为第2步的路径结果)

4、将新的xxx.class文件放到第3步的路径下(替换前备份原文件)

这里更换名字的方法模拟这一步,实际生产环境操作按需要放进新的文件

5、重新打包jar

bash 复制代码
jar -uvf  xxx.jar xxx/xxx/xxx/xxx/xxx/xxx.class(路径为第2步的路径结果)

查看jar包里的文件已经是新文件(如果是一样名字的会被覆盖处理):

6、重启使用该jar包应用(如有需要)。

7、替换jar包中的jar文件

前2个查找查找步骤同上,最后一步略有不同。如:

bash 复制代码
jar -uvf0 abc.jar BOOT-INF/lib/a.jar
##使用的是-uvf0而是不是-uvf
相关推荐
minji...20 分钟前
数据结构 堆(4)---TOP-K问题
java·数据结构·算法
命苦的孩子30 分钟前
Java 中的排序算法详解
java·开发语言·排序算法
Seven971 小时前
Spring AI 框架中如何集成 MCP?
java
开往19821 小时前
spring boot整合mybatis
java·spring boot·mybatis
北京_宏哥1 小时前
《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
java·前端·面试
回家路上绕了弯1 小时前
Java双亲委派机制:从原理到实践的全面解析
java·后端
努力的小郑2 小时前
亿级流量下的生死抉择:Apache BeanUtils vs MapStruct性能差距32倍!架构师选型指南
java·spring·apache
努力的小郑2 小时前
BeanUtils拷贝大对决:Spring与Apache Commons的差异与妙用
java·spring·apache
求知摆渡2 小时前
Spring Boot 3.5 + Spring Cloud Stream:邮件发送与幂等实战
java·spring boot·spring cloud
用户40078422112602 小时前
苍穹外卖实现员工账号启用禁用
java