前言

后面咱们就曾经说了Windows怎么应用Arthas了,那明天咱们就来聊一下在Linux下的Arthas的应用

一、筹备

咱们同样也须要筹备一个java程序,启动之后不能进行的,那我就用的死循环程序,上面是一个死循环程序,始终输入a的值

public class test1 {    public static void main(String[] args) {        int a = 1;        while (a==1){            System.out.println(a);        }    }    }

二、测试

Linux下测试

Linux下跟Windows下应用步骤差不多,只不过你须要启动的是jar包,你先把程序的jar包放到Arthas的目录下,应用FTP传输就能够了

没有FTP传输工具的,能够关注咱们公众号:全栈开发Dream , 回复2获取下载链接

上传实现后,应用命令启动这个jar包,比方我的是test.jar,那我放好之后,进入到jar包的目录,就应用以下命令行启动

java -jar test.jar

而后让这个程序在这里运行不要敞开,咱们关上另外一个窗口,启动Arthas

进入Arthas的的目录,输出启动命令,命令如下

java -jar arthas-boot.jar

同样的,抉择test后面的数字,启动Arthas

如果你想要检测其余的java程序的话,就输出程序名后面对应的数字

有时候可能会呈现端口被占用,那就须要换一个端口执行

java -jar arthas-boot.jar --telnet-port 9988 --http-port -1

当然Linux也是能够用浏览器拜访arthas的,然而只能在内置的web,不能在里面的Windows浏览器拜访,要是用Windows的浏览器拜访链接是找不到的

三、执行

咱们先执行一下help,呈现的命令跟Windows的是一样的

常用命令

其实上一篇说的,Windows应用的命令在Linux这里也是能够应用的

清理命令是也是能够用的

Windows下是clear,Linux下是cls

1.dashborad仪表板

输出dashborad之后,也会呈现仪表板的信息,来回顾一下

仪表板次要有三个局部,第一个是所有的线程状态,第二个是内存应用的状况,第三个是JVM的状态和Windows的信息

这些内容是会刷新的,可依据这些数据对这个程序以及java虚拟机进行监控,须要退出的话按q 或者Ctrl+c即可退出。

2.thread线程板

输出这个命令之后,也会呈现一个线程板,这个跟上一篇的Windows的性能的差不多的,显示的是所有线程的状况

每个线程后面会有一个id,输出 thread +对应的id能够查看的该线程的一些信息

3.jad反编译

这个命令是一个反编译的命令,能够把jar包反编译成代码展现在屏幕上,例如我的是test程序,然而我的类如同是test1,那我就输出jad test1,要是我输出jad test的话,他会说这个类没有找到,因为我的类名就是test1

个别的程序的话,就须要装置上面的步骤来输出

jad  包名.类名

我输出jad test1之后,他就会把我这个类的文件反编译进去,显示在这里

回顾一下,第一个红色字体下的是类加载器,第二个是门路,上面的就是源码和反编译的工夫了

4.watch监测

后面说过这是监督,有点相似debug那种,能够看到这个类中函数的返回值,那我就简略说一下格局,就不去改变了,个别命令的格局如下,只有这个猎中有办法(函数),才可能用这个命令

watch 包名.类名 办法名 primeFactors returnObj

因为我后面在Windows的时候说过就不再改变了,小伙伴们就本人回去尝试吧,上面是的上一篇文章的代码

public class test {    public static void main(String[] args) {        int a = 1;        while (a==1){            System.out.println(outs(a));        }    }        public static int outs(int x){        return x;    }}

测试这个outs办法,没有包名就把包名省略,那我就输出

watch test outs primeFactors returnObj

能够看到每一次都会输入一个后果,这个后果就是咱们料想的 “1” ,同样的在结尾也是提醒咱们,按Q或者Ctrl+C能够退出

当然你也能够不写primeFactors ,间接输出watch test outs primeFactors returnObj,也是会输入数据,然而这个数据是会始终循环输入的,每执行一次就会输入一次,并且这个输入后果会阐明是什么类型的,比方这里的Integer类型,同样按Q或者Ctrl+C退出

5.退出Arthas

上次一篇文章说过了就不反复啦,只是退出监控是就应用quit或者exit,要是像退出Arthas整个程序的就应用stop,记住哦。

另外分享一个上次没有说到的小技巧,后面的输出help命令之后会有很多的命令,要是不记得某个单词怎么拼怎么办,别急,只有你记住后面几个单词,前面忘了的话按Tap键会主动帮你填充哦

本次分享就先到这里了,前面还会分享更多对于Arthas的应用,敬请期待哦