下载,安装
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文档中找到了原因!

我刚才直接把人家结构都变了,哈哈哈……
这个玩意加个日志,改个判断条件可以,重写函数就算了。
本文记录了使用Arthas进行Java应用调试的过程,包括安装配置、常见问题解决及命令实践,如jad反编译class,sc查看类信息,sm查看类方法,mc编译及redefine热更新等。
1万+





