29

BEA Weblogic Server v9.2 ランタイム環境を介して Eclipse 内で Weblogic アプリケーションを起動しています。これがコマンドラインから直接実行されている場合は、ctrl-BREAK を実行してスレッド ダンプを強制します。Eclipseでそれを行う方法はありますか?

4

9 に答える 9

25

確かに(VonCがSOスレッドを指していることに感謝します)、Dustinは、彼のメッセージへのコメントで、jstackを指しています。

Eclipseで(GUIを使用して)小さなJavaアプリケーションを実行しました。関連するjavaw.exeをWindowsのプロセスマネージャーとそのPID 7088で確認できます(もちろん、Unixではさらに簡単です)。

コマンドプロンプトjstack 7088で入力すると、スレッドごとに必要なスタックダンプがあります。
涼しい。

Eclipseから直接それを行うことができればもっと良いでしょうが、それはそのままでもすでに役に立ちます。

于 2008-10-28T15:18:07.350 に答える
7

SendSignalを確認してください: http ://www.latenighthacking.com/projects/2003/sendSignal/

于 2009-02-07T23:28:11.357 に答える
7

デバッグ モードのときに実行できます。デバッグ パースペクティブのデバッグ ビューに移動し、起動したプロセスをクリックして一時停止をクリックすると、すべてのプロセスのグラフィカル スタックが表示されます。

注 : これは、リモート デバッグを使用している場合にも機能します。Eclipse から weblogic を起動する必要はありません。単独で起動し、デバッグ ポートを開き、そのための「リモート Java アプリケーション デバッグ構成」を作成できます。

于 2008-10-28T15:48:08.163 に答える
3

Eclipse Wiki: How to Report a Deadlockには、Eclipse でスレッド ダンプを作成するためのすべての可能なオプションがリストされています。具体的な状況に応じて、どちらかがうまく機能する可能性があります。Windows での個人的なお気に入りは、Adaptj Stacktrace ツールです。

于 2009-10-13T13:51:20.580 に答える
2

UI ベースのソリューションを好む場合は、 visualvmを選択することをお勧めします。(JDKで配布されていることも利点です)

visualvm でスレッド ダンプを取得するには:

  1. プロセス (リモートまたはローカル) に接続し、
  2. (タブ)に行くThreads-> Thread Dump(ボタン)
于 2014-07-30T08:22:59.310 に答える
2

StackTraceは、試すことができる別のオプションです。機能から:

Windowsサービス (Tomcat など)として実行されている Java プロセスのスレッド ダンプは、 javaw.exe、任意のブラウザー内で実行されているアプレット、または別のプロセス内に埋め込まれた JVM で開始されます。StackTrace は、Windows、Linux、および Mac OS X で動作します。

于 2009-04-28T23:36:56.830 に答える
0

JVisualVMを介して接続し、スレッドダンプを取得できます。アプリケーションツリーからアプリケーションノードを右クリックし、[スレッドダンプ]を選択するだけです

于 2010-02-19T16:54:53.237 に答える
0

Linux では、少なくとも aを実行ps -ef | grep javaして PID を取得し、次に aを実行するkill -3 PIDと、それが Eclipse コンソールに出力されます。

于 2012-03-16T22:27:43.973 に答える
0

( eclipse.ini内の) javaw.exe の代わりに java.exe を使用して Eclipse を起動しようとしましたか?

これにより、このバグこのメッセージで説明されているように、必要なコンソールが得られる場合があります。

他のアイデア (Java オプションに関して) は、この他の SO の質問から派生する可能性があります。

于 2008-10-28T14:59:55.703 に答える