jstack
背景 jstack 用来查看某个 Java 进程内的线程堆栈信息,语法: jstack [option] PID jstack [option] executable core jstack [option] [server-id@]remote-hostname-or-ip 常用参数: 参数 说明 -l long listing,额外打印锁信息;发生死锁时可用 jstack -l pid 观察锁持有情况 -m mixed mode,同时输出 Java 堆栈和 C/C++(Native 方法)堆栈 -F 当 jstack [-l] pid 无响应时强制 dump 现代 JDK(含 JDK 26)里还有替代吗 有,而且是官方推荐的替代:jcmd <pid> Thread.print。 jstack、jmap、jinfo 这几个独立小工具早已被 Oracle 标记为 experimental / unsupported,官方故障排查文档现在统一推荐通过 jcmd 这个诊断入口来做线程栈、堆 dump、JFR 等操作: jcmd <pid> Thread.print # equivalent to: jstack <pid> jcmd <pid> Thread.print -l # equivalent to: jstack -l <pid>, with lock info jstack 目前仍随 JDK 26 一起提供,还能正常使用,只是不建议在新脚本 / 新流程里继续依赖它。参数与用法详见 jcmd;更完整的生产诊断工具对比(Arthas、async-profiler、JFR 等)见 生产环境诊断工具选型。 ...