不修改jar包如何修改里面的代码?

生产上某个jar包里面的一个方法需要修改一下,但前提是不可以动这个jar,有什么办法在代码程序里面调用到这个方法的时候进行修改?要全部把里面的class反编译出来么?

阅读 4k
4 个回答
  1. 找到的源码
  2. 在程序代码里面新建一个与该类路径完全相同,类名称也相同的类
  3. 把代码完全拷贝进去

代理模式,装饰器模式,适配器模式。

重写这个类, 把它放到 classpath 靠前的位置。

或者实现自己的classloader, 在里面加载这个类的时候,加载自己的实现。

新手上路,请多包涵

Arthas 提供了热更新的方法,可以看一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题