需求场景
- 举个栗子,在线上代码某个class的方法添加日志输出,修改方法返回结果,但是,又不想直接修改class
做法
- 1.上传修改后的class文件到服务器任意路径,比如:
/root/java/HelloController.class - 2.下载arthas-boot.jar上传到服务器,启动:
java -jar arthas-boot.jar - 3.根据pid选择要修改class的线上程序
- 4.通过redefine加载修改后的class文件,
redefine /root/java/HelloController.class - 5.验证效果,结束
- 6.这个方式只是修改运行时内存,class文件并没有改变,服务重启就失效了
效果

参考:
https://alibaba.github.io/arthas/quick-start.html#arthas
https://alibaba.github.io/arthas/redefine.html
本文介绍如何使用Arthas工具进行热更新,无需重启服务即可修改线上代码的class文件,包括具体步骤与验证方法。
95

被折叠的 条评论
为什么被折叠?



