web-dev-qa-db-ja.com

IntelliJ IDEAデバッガを実行中のJavaプロセスに接続する

IntelliJ IDEAデバッガを実行中のJavaプロセスにアタッチすることは可能ですか?もしそうなら、どうですか?

206
Marco

はい!設定方法は次のとおりです。

実行構成

リモート実行設定を作成します。

  1. 実行 - >設定の編集...
  2. 左上の「+」をクリック
  3. 一番左のペインで[リモート]オプションを選択します
  4. 名前を選択してください(私は「remote-debugging」という名前を付けました)
  5. [OK]をクリックして保存します。

enter image description here

JVMオプション

上記の設定は3つの読み取り専用フィールドを提供します。これらは、アプリケーションの実行時にリモートデバッグ用にポート5005を開くようにJVMに指示するオプションです。デバッグしているアプリケーションのJVMオプションに適切なものを追加します。これを行う1つの方法は、次のようになります。

export Java_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

しかし、それはあなたがあなたのアプリケーションをどのように実行するかに依存します。 3つのうちどれがあなたに当てはまるかわからない場合は、最初のものから始めて、うまくいくものが見つかるまでリストの下に進みます。

suspend=nsuspend=yに変更して、IntelliJが起動する前にIntelliJに接続するまでアプリケーションを待機させることができます。ヒットしたいブレークポイントがアプリケーションの起動時に発生する場合、これは役立ちます。

デバッグ

通常どおりにアプリケーションを起動し、IntelliJで新しい設定を選択して[デバッグ]をクリックします。

enter image description here

IntelliJはJVMに接続してリモートデバッグを開始します。

必要に応じてコードにブレークポイントを追加してアプリケーションをデバッグできます。アプリケーションの出力は以前と同じ場所に表示されますが、ブレークポイントはIntelliJに表示されます。

335
Cory Klein

可能ですが、アプリケーションを起動するときにJVMフラグをいくつか追加する必要があります。

リモートデバッグ設定を追加する必要があります。設定の編集 - >リモート。

そうすると、表示されたダイアログウィンドウに、プログラムの実行に追加しなければならないパラメータが見つかります。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

その後、アプリケーションを起動したら、デバッガをアタッチできます。デバッガが接続されるまでアプリケーションを待機させたい場合は、suspend flagをyに変更してください(suspend=y

42
Jakub Kubrynski

androidStudioやアイデアで

  1. アプリケーションをデバッグするように設定し、設定を編集を開きます。

"VM Options"を追加します。Config “-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005” remember "address"

enter image description here

  1. リモートデバッガを終了しない場合は設定、追加するには+をクリック

手順1と同じ "Port"を指定します "address" enter image description here

5
Bill

また、デバッグモードで接続したい場合は、アプリのJava_OPTSに "-Xdebug"フラグを追加する必要があることを忘れないでください。

5
Max

また、Tomcat GUIアプリを使用します(私の場合はC:\ Tomcat\bin\Tomcat9w.bin)。

  • Javaタブに移動します。

    enter image description here

  • 以下のように、Javaのプロパティを設定します。

    Java仮想マシン

    C:¥Program Files¥Java¥jre-10.0.2¥bin¥server¥jvm.dll

    Java仮想マシン

    C:\ Tomcat\bin\bootstrap.jar; C:\ Tomcat\bin\Tomcat-juli.jar

    Javaオプション

    -Dcatalina.home = C:\ Tomcat

    -Dcatalina.base = C:\ Tomcat

    -Djava.io.tmpdir = C:\ Tomcat\temp

    -Djava.util.logging.config.file = C:\ Tomcat\conf\logging.properties

    -agentlib:jdwp = transport = dt_socket、server = y、suspend = n、address = *:8000

    Java 9オプション

    --add-opens = Java.base/Java.lang = ALL-UNNAMED

    --add-opens = Java.base/Java.io = ALL-UNNAMED

    --add-opens = Java.rmi/Sun.rmi.transport = ALL-UNNAMED

0
Taras Melnyk