Windows下Arthas的简单使用

前言

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

一、准备

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

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

二、测试

Windows下测试

启动这个程序,并且让他后台运行

然后菜单键+R,运行cmd打开命令行,然后进入到Arthas的arthas-boot.jar目录,比如我的在D盘,所以我需要先进入D盘的路径,然后才能cd进入到我的目录

进入目录之后,使用下列命令启动Arthas

java -jar arthas-boot.jar

然后就会显示出我们刚刚启动的test这个程序了,输入1之后按回车就可以启动Arthas来检测了
如果你想要检测其他的java程序的话,就输入程序名前面对应的数字

当然你也可以在浏览器里进行监控的操作,上图中有个链接,你在浏览器输入这个地址就可以使用浏览器来执行arthas命令

三、执行

我们先执行一下help,看看有什么命令

image-20210601150102790

显然,arthas的命令还是挺多的,后面会介绍的

那我先介绍一下几条常用的吧

常用命令

提前说一条清理的命令,后面的常用命令展示的东西太多,需要清掉来好看一点

Windows下就是clear,Linux下就是cls

1.dashborad仪表板

输入dashborad之后,会出现一个表格(如果没有出现,说明可能那个程序停了,要保持test程序还在运行),这个叫仪表板

主要有三个部分,第一个是所有的线程状态,第二个是内存使用的情况,第三个是JVM的状态和Windows的信息

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

image-20210601154823554

2.thread线程板

输入这个命令之后,也会出现一张表,这个跟上面的第一条是类似的,显示的是所有线程的情况image-20210601155846069

每个线程前面会有一个id,输入 thread +对应的id可以查看的该线程的一些信息

image-20210601160343118

3.jad反编译

这个命令是一个反编译的命令,可以把jar包反编译成代码展示在屏幕上,例如我的是test程序,那我就输入jad test

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

jad  包名.类名

image-20210601160559560

输入之后返回了几行东西,第一个红色字体下的是类加载器,第二个是路径,下面的就是源码和反编译的时间了

4.watch监测

直接翻译就是监视,有点类似debug那种,可以看到这个类中函数的返回值,下面是标准使用的格式

$ watch 包名.类名 方法名 primeFactors returnObj

那我就需要改进一下,把我的程序改成函数调用的形式,现在我改成这样,效果是跟前面的是一样的

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可以退出

image-20210601164716217

当然你也可以不写primeFactors ,直接输入$ watch test outs primeFactors returnObj,也是会输出数据,但是这个数据是会一直循环输出的,每执行一次就会输出一次,同样按Q或者Ctrl+C退出

image-20210601162625926

5.退出Arthas

只是退出当前连接的话,可以输入quit或者exit退出这个连接,这样就可以更换监控的java程序了

比如我不监控test这个程序了,我要监控test1,那就输出quit或者exit退出这个连接,然后再重新选择test1进行监控。

我就再新建一个java程序test1如下,功能类似,也是死循环输出一个数

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

同时要保持两个程序都没有停止

image-20210601170016189

退出,然后就可以选择监控另一个了。有时候会有出现无法连接的情况,这是因为端口被刚刚的占用了还没释放,这里可以把test1的端口更换掉就行,前面有说怎么换端口的

image-20210601170516920

image-20210601170809726

很显然,这样的话,还是没有退出Arthas,只是退出了这次监控而已,那怎么退出呢,那就要直接使用stop命令对其进行关闭操作,直接整个对话就结束了

image-20210601170222511
本次分享就先到这里了,后面还会分享更多关于Arthas的使用,敬请期待

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Windows 10系统中,使用Arthas的教程如下所述: 1. 首先,下载Arthas工具。你可以在官方网站或者其他可靠的下载渠道获取Arthas的安装包。 2. 通过命令行进入Arthas安装目录下的bin文件夹,在此目录下执行as.bat脚本来启动Arthas。 3. 在命令行窗口中,输入要监控的Java进程的编号(例如1),然后按下回车。请注意,由于Windows系统不支持Arthas页面展示,你需要手动使用telnet命令连接Arthas。 4. 打开另一个命令行窗口,输入telnet 127.0.0.1 端口号(默认为3658)。成功连接后,你就可以在telnet界面上对当前进程进行查看和操作了。 5. 如果你想查看Arthas的dashboard,可以在telnet界面上输入dashboard命令。这将显示当前进程的一些概要信息。 请注意,以上步骤中的具体命令和端口号可能会根据你的实际情况有所不同,确保按照Arthas官方文档中的说明进行操作。如果需要更详细的信息和指导,你可以参考Arthas官方文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [java诊断工具Arthas插件在Windows环境下的使用(一)](https://blog.csdn.net/Greg5325/article/details/124387400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值