下载,安装
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
没想到,第一个问题出现的这么快
按照文档上说的,输入前面的序列号,选择进程,但是出现了错误
从头开始看,发现端口被占用了,可以按照提示继续往下走,重新设置端口,或者把占用端口的session关掉(在这里就是先进入 1 号进程,然后shutdown关闭)
好了,如下图,启动成功。
接下来就是各条命令了。
jad : 反编译class
瞧着下面这些命令,肯定可以用来热修改程序。
说干就干,先sc看一下类信息,再sm 看一下类方法信息
没毛病!开始改程序(把之前人家提供的demo改的面目全非)
mc 编译,也没事
但是,出现了第二个问题
redefine虽然表示成功了,但是实际上并没有改变。从sc命令的结果就可以看出来,我刚才瞎改的程序并没有替换掉这个程序。费解!!!
去arthas文档中找到了原因!
我刚才直接把人家结构都变了,哈哈哈……
这个玩意加个日志,改个判断条件可以,重写函数就算了。