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
相关推荐
南归北隐3 分钟前
Spring AI Alibaba Graph框架实现MCP数据库查询实战
java·后端·spring ai·mcp·spring ai mcp
古法老登瞎折腾16 分钟前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
ai大模型-探索者26 分钟前
Function Call与MCP(区别、联系与实战)
java·服务器·网络
略略略咯咯31 分钟前
啊啊啊啊啊
java·服务器·数据库
SL_staff1 小时前
运维救火实战:钉钉API变更致薪资计算中断,如何用可视化逻辑引擎5分钟热修复
java·开源·全栈
猫猫.1531 小时前
HashTable、HashMap、ConcurrentHashMap 核心区别总结
java·开发语言·java-ee
郭小李2 小时前
spring mvc 工作流程
java·spring·mvc
SL_staff2 小时前
BI大屏嵌入MES的登录态难题:JVS统一账号体系实战解法
java·数据分析·数据可视化
乌暮2 小时前
综合案例:宠物电商系统
java·开发语言·spring·mvc·restful·1024程序员节
VimorphTech2 小时前
一段字幕太长,怎样拆句并安排显示时间?
java·spring boot