前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下Arthas的简单使用

Linux下Arthas的简单使用

原创
作者头像
全栈开发Dream
修改2021-06-15 11:08:15
1.5K0
修改2021-06-15 11:08:15
举报
文章被收录于专栏:全栈开发Dream

前言

前面我们就已经说了Windows怎么使用Arthas了,那今天我们就来聊一下在Linux下的Arthas的使用

一、准备

我们同样也需要准备一个java程序,启动之后不能停止的,那我就用的死循环程序,下面是一个死循环程序,一直输出a的值

代码语言:txt
复制
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包的目录,就使用以下命令行启动

代码语言:txt
复制
java -jar test.jar

然后让这个程序在这里运行不要关闭,我们打开另外一个窗口,启动Arthas

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

代码语言:txt
复制
java -jar arthas-boot.jar

同样的,选择test前面的数字,启动Arthas

如果你想要检测其他的java程序的话,就输入程序名前面对应的数字

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

代码语言:txt
复制
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

一般的程序的话,就需要安装下面的步骤来输入

代码语言:txt
复制
jad  包名.类名

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

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

4.watch监测

前面说过这是监视,有点类似debug那种,可以看到这个类中函数的返回值,那我就简单说一下格式,就不去改动了,一般命令的格式如下,只有这个猎中有方法(函数),才能够用这个命令

代码语言:txt
复制
watch 包名.类名 方法名 primeFactors returnObj

因为我前面在Windows的时候说过就不再改动了,小伙伴们就自己回去尝试吧,下面是的上一篇文章的代码

代码语言:txt
复制
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方法,没有包名就把包名省略,那我就输入

代码语言:txt
复制
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的使用,敬请期待哦

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、准备
  • 二、测试
    • Linux下测试
    • 三、执行
      • 常用命令
        • 1.dashborad仪表板
        • 2.thread线程板
        • 3.jad反编译
        • 4.watch监测
        • 5.退出Arthas
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档