Java替换jar包中class文件

在我们开发过程中,有一些场景只需要修改某个Java类中的很少的代码,然后又不希望重新打完整的jar包,这个时候,就可以只将修改后的某个Java类的class文件替换掉原来jar包中的class文件,重新启动服务即可

1.将要修改的Java class类与目标jar包放到同一个目录下

2.查找jar包中要修改的那个class类的路径

jar -tvf demo-0.0.1-SNAPSHOT.jar | grep Test1.class

3.拷贝上一步获取到的路径,将jar包中要修改的那个class文件解压出来

jar -xvf demo-0.0.1-SNAPSHOT.jar BOOT-INF/classes/com/example/demo/test6/Test1.class

4.将我们修改后的class文件替换掉jar包中解压出来的class文件

5.将替换后的jar重新打包,将新的class文件打进jar中

jar -uvf demo-0.0.1-SNAPSHOT.jar BOOT-INF/classes/com/example/demo/test6/Test1.class

6.用新的jar包重新启动服务,或者重新构建docker镜像即可