💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 介绍 获取虚拟机堆栈信息,包括线程堆栈、dump文件、c/c++方法堆栈等,封装于命令`jstack` # 示例 ~~~ import beifengtz.vmconsole.JStackCmd; public class Test { public static void main(String[] args)throws Exception{ JStackCmd.threadStack(8888); } } ~~~ # 方法 | 名称 | 参数 | 返回值 | 含义 | | --- | --- | --- | --- | | threadStack() | int vmId(虚拟机ID,JpsCmd可获取)| JStackResult | 除堆栈外,获取关于锁的附加信息 | | jniStack() | int vmId(虚拟机ID,JpsCmd可获取)| JStackResult | 如果调用到本地方法的话,可以获取C/C++的堆栈 | | threadDump() | int vmId(虚拟机ID,JpsCmd可获取)| JStackResult | 除堆栈外,获取关于锁、dump文件的附加信息 | | run() | String[] var0(命令参数) | JStackResult | 自定义执行jstack命令 | # 结果对象 所有可能返回对象的继承关系结构 ```java |—— beifengtz.vmconsole.entity.JvmResult |—— beifengtz.vmconsole.entity.jstack.JStackResult |—— beifengtz.vmconsole.entity.jstack.ThreadStack ``` ## ThreadStack | 属性 | 类型 | 含义 | | --- | --- | --- | | id | String | 线程id| | state | String | 线程状态 | | stacks | StringBuilder | 线程堆栈信息 | |deadLocks | String | 线程死锁信息| |~~currentJavaSP~~ | String | 当前线程全限名地址 | | concurrentLocks | String | 并发锁信息| ## JStackResult | 属性 | 类型 | 含义 | | --- | --- | --- | | deadLocks | String | 虚拟机死锁信息 | | concurrentLocks | String | 虚拟机并发锁信息 | | threadStacks | List\<ThreadStacks\> | 线程栈信息列表 | | jniStack | ArrayList\<StringBuilder\> | Java及C/C++方法的堆栈信息 | | threadDump | String | 锁、dump文件的附加信息 |