您可以跑在前景的Java过程在系统启动期间,或他们也许在许多情况下跑使用cron工作或,当背景作用。 您怎么能发现任何连续Java过程stacktraces ? 但是您怎么能甚而首先知道他们的名字&处理id's ?

如何发现处理id (pid)所有连续Java过程?

以下命令显示在您的机器的所有连续Java过程名单-

$JAVA_HOME/bin/jps

注意您想要得到stacktrace过程的处理id,因为您在下一个步骤将需要它。

如何发现任何连续Java过程stacktrace ?

以下命令显示所有连续Java过程充分的stacktrace -

$JAVA_HOME/bin/jstack

Java过程实际pid替换。 例如我刚才使用了以下命令显示stacktrace DataNode (Hadoop过程) -

$JAVA_HOME/bin/jstack 13700

那里13700偶然是DataNode的pid在我的机器的。

这些命令是可利用的在JDK 1.5以上。

注: jstack在星期日之前是一实验性工具和无支持的。 是可利用的在Windows平台jstack的唯一的形式是:
jstack [- l] pid

jstack可能也连接到遥远的Java调试服务器和因而打印遥远的过程stacktraces。

对于每个Java框架,充分的分类名、方法名字、‘bci’ (字节代码索引)和行号,若有,打印。 - m选择, jstack与‘个人计算机一起’打印Java和所有螺纹当地框架(程序计数器)。 对于每个当地框架,对‘个人计算机的’最接近的当地标志,若有,打印。 C++被损坏的名字没有demangled。 对demangle C++名字,这个命令产品也许用管道输送到c++filt。 如果特定过程在64位VM跑,您可能需要指定- J-d64选择。