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
相关推荐
hello 早上好9 小时前
05_Java 类加载过程
java·开发语言
echoVic9 小时前
多模型支持的架构设计:如何集成 10+ AI 模型
java·javascript
橙露9 小时前
Java并发编程进阶:线程池原理、参数配置与死锁避免实战
java·开发语言
echoVic9 小时前
AI Agent 安全权限设计:blade-code 的 5 种权限模式与三级控制
java·javascript
PPPPickup9 小时前
easymall---图片上传以及图片展示
java
历程里程碑9 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Wpa.wk9 小时前
接口自动化 - 接口鉴权处理常用方法
java·运维·测试工具·自动化·接口自动化
Pluchon9 小时前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法
2501_916008899 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone
wxin_VXbishe9 小时前
C#(asp.net)学员竞赛信息管理系统-计算机毕业设计源码28790
java·vue.js·spring boot·spring·django·c#·php