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
相关推荐
shangjg31 小时前
Kafka 的 ISR 机制深度解析:保障数据可靠性的核心防线
java·后端·kafka
Alan3163 小时前
Qt 中,设置事件过滤器(Event Filter)的方式
java·开发语言·数据库
小鹭同学_3 小时前
Java基础 Day28 完结篇
java·开发语言·log4j
椰椰椰耶4 小时前
[网页五子棋][匹配模块]实现胜负判定,处理玩家掉线
java·开发语言·spring boot·websocket·spring
on the way 1234 小时前
结构性设计模式之Flyweight(享元)
java·设计模式·享元模式
K____End5 小时前
Spring 中的disposableBean介绍
java·spring·rpc
噼里啪啦啦.5 小时前
SpringBoot统一功能处理
java·spring boot·后端
Bruk.Liu5 小时前
《IDEA 高效开发:自定义类/方法注释模板详解》
java·ide·intellij-idea·注释
叶 落5 小时前
[Java 基础]选英雄(配置 IDEA)
java·ide·intellij-idea
陈丹阳(滁州学院)5 小时前
解决idea编译运行项目时间长的问题
java·intellij-idea·idea