我是靠谱客的博主 调皮猫咪,最近开发中收集的这篇文章主要介绍java诊断工具Arthas插件在Windows环境下的使用(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Arthas官方文档:https://arthas.aliyun.com/doc/quick-start.html

Arthas是什么

Arthas 是Alibaba开源的Java诊断工具,可以实现Java动态追踪,可以在运行中的Java代码内添加日志输出以达到不重启项目来打印日志的效果。
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

文章写作目的

官方文档中的操作是以linux环境为主的,本文主要介绍当开发人员开发环境为Windows时,如何顺利使用Arthas的功能,本篇只简单介绍如何启动Arthas以及简单的输出,对应官方文档中的“快速入门”部分。

使用Arthas

下载Arthas

Arthas下载地址
下载到本地后手动解压缩。

启动demo

Arthas Git代码中自带了一个名为MathGame的简单java程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。
通过命令行进入MathGame路径下,编译MathGame.java,并运行demo。
编译MathGame.java,并运行demo

启动Arthas

通过命令行进入Arthas项目下的bin目录,执行as.sh脚本,进入Arthas页面。
Arthas运行界面
输入进程编号1,回车,此时若为linux环境,则Arthas会attach到目标进程,但Windows不支持展示Arthas页面,需要我们手动telnet。
找到需要telnet的端口号
打开命令行,输入telnet 127.0.0.1 端口号(图中为3658),成功进入telnet界面。
Arthas attach页面
现在就可以对当前进程进行查看等操作了。

查看dashboard

输入dashboard,按回车/enter,会展示当前进程的信息,按ctrl+c可以中断执行。
当前进程信息

通过thread命令来获取到math-game进程的Main Class

输入thread 1会打印线程ID 1的栈,通常是main函数的线程,输入thread 1|grep main来过滤main函数的信息。
main函数信息

通过jad来反编译Main Class

通过jad命令反编译MathGame.class。
通过jad命令反编译MathGame.class

watch

通过watch命令来查看MathGame#primeFactors函数的返回值:
查看primeFactors函数的输出

总结

博主本身也是初次接触Arthas,从简单的了解中,也感到Arthas是一个非常强力的开源java诊断工具,对java开发人员维护项目来说是一个强大的助力,此篇文章只是浅尝辄止,没有挖掘出深层次的使用方法,也欢迎各路朋友交流指正。

最后

以上就是调皮猫咪为你收集整理的java诊断工具Arthas插件在Windows环境下的使用(一)的全部内容,希望文章能够帮你解决java诊断工具Arthas插件在Windows环境下的使用(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(475)

评论列表共有 0 条评论

立即
投稿
返回
顶部