# 下载 wget https://alibaba.github.io/arthas/arthas-boot.jar # 启动 java -jar arthas-boot.jar --target-ip 0.0.0.0 # 帮助 help # 查看系统实时数据面板 dashboard # 打印线程 id1 的堆栈 thread 1 # 查找 JVM 中已加载的类 sc -d *MathGame # 反编译代码 jad demo.MathGame # 查看方法的返回值 watch demo.MathGame primeFactors returnObj # 彻底退出 stop ===== 查看 JVM 信息 ===== # 打印所有的 System Properties 信息 sysprop # 指定单个 key sysprop java.version # 设置新的 value sysprop testKey testValue # 获取环境变量 sysenv # 打印 JVM 的各种详细信息 jvm ===== Tips ===== # 快捷键 keymap # 历史命令 history # pipeline sysprop | grep java sysprop | wc -l ===== watch 相关 ===== ==== 返回值表达式 ==== * loader * clazz * method * target * params * returnObj * throwExp * isBefore * isThrow * isReturn 可以利用这些内置对象来组成不同的表达式。比如返回一个数组: watch com.example.demo.arthas.user.UserController * '{params[0], target, returnObj}' ==== 条件表达式 ==== watch命令支持在第4个参数里写条件表达式,比如: watch com.example.demo.arthas.user.UserController * returnObj 'params[0] > 100' ==== 异常时捕获 ==== watch命令支持-e选项,表示只捕获抛出异常时的请求: watch com.example.demo.arthas.user.UserController * "{params[0],throwExp}" -e ==== 按照耗时进行过滤 ==== watch命令支持按请求耗时进行过滤,比如: watch com.example.demo.arthas.user.UserController * '{params, returnObj}' '#cost>200'