java中jar包替换指定类的方法
目的是:要将log-retain-service-3.1.4.jar中FileUploadTimerTask修改后,再打回包log-retain-service-3.1.4.jar中
1,将包a中的test这个类,先找到路径
jar -tvf log-retain-service-3.1.4.jar |grep FileUploadTimerTask
这里会获得路径:com/eversec/log/thirdparty/timer/FileUploadTimerTask.class
2,从包中解压出那个类(将那个类剔除)
jar -xvf log-retain-service-3.1.4.jar com/eversec/log/thirdparty/timer/FileUploadTimerTask.class
3,修改那个类,然后编译一下
javac 类名
或者你有源码直接改,存在单个类编译报错,这时候可以将整个项目打包成包b,然后从包b中解压出我们要的那个类,这时候这个类就是编译后的文件,可以直接打进我们
log-retain-service-3.1.4.jar中
4将编译后的这个字节文件,打进我们jar包中
<jar -utf log-retain-service-3.1.4.jar 编译后的类文件路径>
jar -uvf log-retain-service-3.1.4.jar …/com/eversec/log/thirdparty/timer/FileUploadTimerTask.class