jstack

jstackコマンドは、指定されたJavaプロセスに関するJavaスレッドのJavaスタック・トレースを出力する場合に使用します。このコマンドは試験的なものであり、サポート対象外になっています。コア・ファイルには、jhsdb jstackを使用します。

形式

注意:

このコマンドは試験的なものであり、サポート対象外になっています。

jstack [options] pid
options

これは、jstackコマンド行オプションです。「jstackコマンドのオプション」を参照してください。

pid

出力されるスタック・トレースのプロセスIDです。プロセスはJavaプロセスである必要があります。マシン上で実行されているJavaプロセスのリストを取得するには、psコマンドを使用するか、JVMプロセスが別のDockerインスタンスで実行されていない場合はjpsコマンドを使用します。

注意:

JDK 10で、Attach APIを使用して、別のDockerプロセスで実行されているJavaプロセスに接続するためのサポートが追加されました。ただし、jpsコマンドでは、別のDockerインスタンスで実行されているJVMプロセスをリストしません。Dockerコンテナ内の仮想マシンとLinuxホストの接続を試みる場合は、psなどのツールを使用して、JVMのPIDを参照する必要があります。

説明

jstackコマンドは、指定されたJavaプロセスに関するJavaスレッドのJavaスタック・トレースを出力します。Javaフレームごとに、完全なクラス名、メソッド名、バイト・コード・インデックス(BCI)および行番号(使用可能な場合)が出力されます。C++分解名は分解解除されません。C++名を分解解除するために、このコマンドの出力をc++filtにパイプで渡すことができます。指定したプロセスが64ビット版のJVMで実行されている場合は、-J-d64オプション(例: jstack -J-d64pid)の指定が必要になることがあります。

注意:

このコマンドはサポート対象外であり、将来のJDKリリースでは利用できなくなる可能性があります。dbgeng.dllファイルが存在していないWindowsシステムでは、Debugging Tools For Windowsをインストールしないとこれらのツールが正常に動作しません。PATH環境変数に、ターゲット・プロセスで使用されるjvm.dllの場所またはコア・ダンプ・ファイルが生成された場所を含める必要があります。

jstackコマンドのオプション

-l

長形式のリスト・オプションは、ロックに関する追加情報を出力します。

-hまたは—help

ヘルプ・メッセージを出力します。