
1.介绍
Stack Trace for Java,用于生成虚拟机当前的轮询快照信息,包含每一条线程的堆栈信息。该命令一般用于定位线程停顿原因,当发生线程停顿时,可借助stack查看每个句柄的堆栈信息,进而探讨停顿原因。
jstack用于打印出给定的java进程ID或core file或远程安装服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方法只支持下列的这些方法:
jstack [-l] pid

如果java程序崩溃生成core文件,jstack工具可以拿来获得core文件的java stack和native stack的信息,从而可以轻松地了解java程序是怎样崩溃和在程序何处发生弊端。另外java stack trace,jstack工具还可以附属到正在运行的java程序中,看到原本运行的java程序的java stack和native stack的信息, 如果今天运行的java程序呈现hung的状况,jstack是相当有用的。
2.命令格式
jstack [ option ] pid
jstack [ option ] executable core

jstack [ option ] [server-id@]remote-hostname-or-IP
3.常用参数表明
1).options
executable Java executable from which the core dump was produced.(可能是造成core dump的java可执行程序)

core 将被打印信息的core dump文件
remote-hostname-or-IP 远程debug服务的主机名或ip
server-id 唯一id,假如一台主机上多个远程debug服务
2).基本参数

-F当’jstack [-l] pid’没有响应的之后强行打印堆栈信息
-l长列表,除堆栈外java stack trace,显示锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.
-m混合方式,打印java和native c/c++调用的堆栈信息
-h | -help打印帮助信息
pid 需要被打印配置信息的java进程id,可以用jps查询
4.使用示例
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-141196-1.html
此生思念与难过
也不腻