前面我们就已经说了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下跟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
输入dashborad之后,也会出现仪表板的信息,来回顾一下
仪表板主要有三个部分,第一个是所有的线程状态,第二个是内存使用的情况,第三个是JVM的状态和Windows的信息
这些内容是会刷新的,可根据这些数据对这个程序以及java虚拟机进行监控,需要退出的话按q 或者Ctrl+c即可退出。
输入这个命令之后,也会出现一个线程板,这个跟上一篇的Windows的功能的差不多的,显示的是所有线程的情况
每个线程前面会有一个id,输入 thread +对应的id可以查看的该线程的一些信息
这个命令是一个反编译的命令,可以把jar包反编译成代码展示在屏幕上,例如我的是test程序,但是我的类好像是test1,那我就输入jad test1
,要是我输入jad test
的话,他会说这个类没有找到,因为我的类名就是test1
一般的程序的话,就需要安装下面的步骤来输入
jad 包名.类名
我输入jad test1之后,他就会把我这个类的文件反编译出来,显示在这里
回顾一下,第一个红色字体下的是类加载器,第二个是路径,下面的就是源码和反编译的时间了
前面说过这是监视,有点类似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退出
上次一篇文章说过了就不重复啦,只是退出监控是就使用quit
或者exit
,要是像退出Arthas整个程序的就使用stop
,记住哦。
另外分享一个上次没有说到的小技巧,前面的输入help
命令之后会有很多的命令,要是不记得某个单词怎么拼怎么办,别急,只要你记住前面几个单词,后面忘了的话按Tap
键会自动帮你填充哦
本次分享就先到这里了,后面还会分享更多关于Arthas的使用,敬请期待哦
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。