Javaプログラム以外に対してスレッドダンプツールを使用しても、スレッドダンプやメッセージなどは何も出力されません。
アプリケーションの不良(JNIによる領域破壊など)で、Java VM内の管理領域が破壊されていたり、または、不整合があったりする場合、スレッドダンプ採取対象のプロセスでアプリケーションエラーが発生する場合があります。
-fオプションを使用してファイルにスレッドダンプを出力する際、スレッドダンプ採取処理の間に、アプリケーションが標準出力にログ等を出力した場合、それらが、-fオプションで指定したファイルに混入することがあります。アプリケーション側で、すでに標準出力、標準エラー出力をリダイレクトして、ログファイル等を作成している場合、アプリケーションの出力が、これらログファイルには出力されません。
JNIのJNI_CreateJavaVMを使って起動したアプリケーションで、Java VMのオプションvfprintf_hookを指定した場合は、-jオプションを使用してください。この場合、-fオプションは使用できません。vfprintf_hookで指定したフック関数の処理によりスレッドダンプが出力されます。
Java VMで、VM Thread(Java VM内の管理スレッド)がハングアップしている場合は、スレッドダンプが出力できません。
スレッドダンプを取得しようとしているJavaプログラムに対し、スレッドダンプツールの実行をするユーザは、同等以上の権限をもっている必要があります。(Administratorが実行しているJavaプログラムに対し、一般ユーザがスレッドダンプツールを実行してもスレッドダンプの採取はできません)
スレッドダンプを取得する場合、Administrator権限が必要です。
また、Administratorグループのメンバーにより、管理者権限で実行したコマンドプロンプトからスレッドダンプツールの操作をする必要があります。管理者権限でコマンドプロンプトを実行するには、コマンドプロンプトの実行ファイルをエクスプローラー上で右クリックし、“管理者権限で実行する”を選択します。
サービスプログラムのスレッドダンプを取得する場合、Administrator権限が必要です。