1. ホーム
  2. デバッギング

[解決済み】実行中のJavaプロセスにIntelliJ IDEAのデバッガをアタッチする。

2022-04-02 19:08:45

質問

IntelliJ IDEAのデバッガーを実行中のJavaプロセスにアタッチすることは可能ですか?可能な場合、その方法は?

解決方法を教えてください。

はい!設定方法はこちらです。

実行設定

リモートの実行構成を作成します。

  1. Run -> Edit Configurations...
  2. 左上の["+"]をクリックします。
  3. 一番左のペインで、quot;Remote"を選択します。
  4. 名前を決めます(私は "remote-debugging" としました)。
  5. OK"をクリックして保存します。

JVMオプション

上記の設定には、3つの読み取り専用フィールドがあります。これらは、アプリケーションを実行するときに、リモートデバッグのために5005番ポートをオープンするようJVMに指示するオプションです。デバッグしているアプリケーションのJVMオプションに、適切なものを追加してください。これを行う一つの方法は、以下のようなものです。

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

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

を変更することができます。 suspend=n から suspend=y を使用すると、アプリケーションが起動する前にIntelliJと接続するまで待機するように強制できます。これは、ヒットさせたいブレークポイントがアプリケーションの起動時に発生する場合に便利です。

デバッグ

通常通りアプリケーションを起動し、IntelliJで新しい設定を選択し、「Debug」を押します。

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

これで、コードにブレークポイントを追加して、アプリケーションをデバッグできるようになりました。アプリケーションの出力は、以前と同じように表示されますが、ブレークポイントは IntelliJ でヒットします。