jstack用于打印出给定的 java 进程 ID 或 core file 或远程调试服务的 Java 堆栈信息,如果是在 64 位机器上,需要指定选项 "-J-d64" , Windows 的 jstack 使用方式只支持以下的这种方式:
jstack [-l] pid
如 果java 程序崩溃生成 core 文件, jstack 工具可以用来获得 core 文件的 java stack 和 native stack 的信息,从而可以轻松地知道 java 程序是如何崩溃和在程序何处发生问题。另外, 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
1)、 o ptions :
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.util.concurrent 的 ownable synchronizers 列表 .
-m打印 java 和 native c/c++ 框架的所有栈信息 .
-h | -help打印帮助信息
pid 需要被打印配置信息的 java 进程 id, 可以用 jps 查询 .