你所不知道的Java故障排除工具

这可能是我写的最懒的博客系列了…如果仅仅是看一眼,那还真的是只能看一眼 /捂脸。
附上另外两篇懒博客:

  • 你所不知道的Java应用程序监控工具
  • 你所不知道的JVM监控工具

写在前面

文章参考自官方文档 (当然,更详细的内容也需要从这里找到,请允许我偷点懒吧),仅适用于 windows 系统。命令的可执行jar 包,可在 JDKbin 路径下找到。由于该路径已经加到了环境变量中,我们可以在任何路径下的命令行窗口执行以下的命令。


jcmd

向正在运行的 JVM 发送诊断请求

我比较常使用的是 jcmd VMID PerfCounter.print , 该命令能够获取到非常多的信息。vmid 可以通过 jps -l 命令查看。


jinfo

jinfo命令为指定的Java进程或核心文件或远程调试服务器打印Java配置信息。配置信息包括Java系统属性和Java虚拟机(JVM)命令行标志

使用 jinfo VMID 查看。


jhat

jhat命令解析Java堆转储文件并启动Web服务器。该jhat命令使您可以使用自己喜欢的Web浏览器浏览堆转储。

使用 jhat 查看。


jmap

jmap命令显示指定进程,核心文件或远程调试服务器的共享对象内存映射或堆内存详细信息。

使用 jmap vmid 查看,一些在我目前看来毫无用处的信息,你可以尝试下。


jsadebugd

jsadebugd命令附加到Java进程或核心文件,并充当调试服务器。等远程客户端jstackjmap以及jinfo可以连接到通过Java远程方法调用(RMI)服务器。

这个我还真不知道怎么用…


jstack

打印Java进程,核心文件或远程调试服务器的Java线程堆栈跟踪。

使用 jstack vmid ,这个命令就蛮好了,可以看到一些线程跟踪信息。


你可能感兴趣的:(Java)