IntelliJ IDEAでリモートデバッグする方法をメモしておきます。今回は、リモートサーバで動作するJavaのSpring Bootアプリケーションをローカル環境からリモートデバッグしてみます。
環境
IntelliJ IDEAでリモートデバッグの設定を行う
IntelliJ IDEAのメニューバーから「Run」 > 「Edit Configurations...」を選択します。

「+」ボタンを選択し、「Remote」を追加します。リモートデバッグの設定がいろいろと出てきますが、設定するのは以下だけでOKです。
- Name: リモートデバッグ設定の名前。なんでもいいです。
- Host: リモートホスト名
- Port: リモートホストで待ち受けるポート(リモートホスト側で競合しないポート番号にすること)
リモートホストでアプリケーションをデバッグモード実行する
リモートホストで、javaコマンドのオプションにデバッグモードを指定してjarを実行します。このオプションは、IntelliJ IDEAのリモートデバッグの設定画面にも表示されているのでそれをコピペしてくればOKです。
ちなみに、suspend=nの箇所をsuspend=yとすると、ローカル環境からリモートデバッグ実行するまでアプリケーションの実行を待ち続けます。一度実行するだけのコマンドラインアプリケーションの場合はsuspend=yにし、一度実行すると起動し続けるWebアプリケーションの場合はsuspend=nに設定してやりましょう。
あと、リモートホストとローカル環境のソースコードが同じでないと、ブレイクポイントがずれたり、そもそもリモートデバッグがうまくいかなかったりします。
ローカル環境からリモートデバッグする

リモートホストでアプリケーションをデバッグモード実行したら、ローカル環境からリモートデバッグしてみましょう。まずは普段デバッグするときと同じようにソースコード上でブレイクポイントを設定します。あとは、上の画像のとおり、リモートデバッグ設定を選択し、虫アイコンを選択すればリモートデバッグできます。
まとめ
IntelliJ IDEAでリモートデバッグする方法でした。リモートデバッグはサーバ上で動作しているアプリケーションのふるまいを簡単に検証できるので重宝します。