JVM线程转储位置

use*_*591 15 java jvm

当我kill -3 <pid>向Java程序发出命令时,它会在控制台上生成线程转储.如何将其重定向到文件?

Zoo*_*ork 23

两种选择:

使用stdout重定向运行Java应用程序

java com.example.MyApp > out.txt
Run Code Online (Sandbox Code Playgroud)

jstack改用.

jstack工具可以让你获得一个线程转储和输出发送到当前控制台,而不是Java应用程序的标准输出,让您重定向它.

例如,如果Java应用程序的PID是12345(使用jps实用程序快速找到它):

jstack 12345 > threads.txt
Run Code Online (Sandbox Code Playgroud)