Java 常用工具&命令

jps

全称为 Java Virtual Machine Process Status Tool。它用于列出当前运行的 Java 虚拟机(JVM)进程以及这些进程的主要类名,帮助开发人员快速查看哪些 Java 程序正在运行

jps -l

常用选项
-l:显示主类的全限定名或 JAR 文件的完整路径。
-v:显示传递给 JVM 的参数。
-m:显示传递给主类的参数。

jstack

用于生成 Java 虚拟机(JVM)中所有线程的堆栈跟踪(Thread Stack Trace)。它是进行多线程调试和排查死锁问题的有力工具。

jstack <PID> | grep -i "NioEventLoop"

常用选项
-l:打印出有关锁的信息,例如监视器锁和同步锁。
-m:打印出 Java 和本地的堆栈帧混合信息。如果 JVM 中调用了本地方法(例如 JNI),会显示本地堆栈信息。

jstack -l 12345

分析死锁
当怀疑存在死锁时,jstack 是一个非常有用的工具。使用 jstack 命令,可以查看线程是否处于 BLOCKED 状态,或是否有多个线程相互等待对方持有的锁,从而导致死锁。
如果 jstack 检测到死锁,它会在输出的最后显示“Found one Java-level deadlock:”。

jmap

发表评论