GUIアプリケーションのリモート・デバッグ

JDeveloperでは、コマンドラインを使用した、GUIアプリケーションのリモート・デバッグをサポートしています。これを行うには、デバッグするプログラム(デバッグ対象プロセス)を手動で開始する必要があります。デバッグ対象プロセスが開始し、JDeveloperのデバッガがプロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作はよく似ています。

UIのリモート・デバッグの実行方法は、アプリケーションのリモート・デバッグと類似しています。ただし、次の前提条件を満たしておく必要があります。

GUIアプリケーションをリモート・デバッグするには、次のようにします。

  1. デバッグ用にプロジェクトを設定します。その際、プロジェクトをリモート・デバッグに対して有効にします。
  2. 次を実行して、アプリケーションを手動で起動します。

    java -ojvm -XXdebug -cp .../jdev/lib/jdev-rt.jar
    oracle.jdevimpl.runner.uidebug.debuggee.Debuggee <MainClass>

    ここで

  3. コマンド・ウィンドウに、次のようなメッセージが表示されます。

    *** Port is 4000 ***
    *** Waiting for OJVM debugger connection. ***

  4. UIデバッガでは、アプリケーションとの対話にソケットが使用されます。ソケットのデフォルト・ポート番号は4030ですが、次のようにアプリケーションのメイン・クラスの前に-uidport,<port> を挿入して、別のポート番号を指定することができます。

    java -ojvm -XXdebug -cp .../jdev/lib/jdev-rt.jar
    oracle.jdevimpl.runner.uidebug.debuggee.Debuggee -uidport,5678 mypackage1.Application1

    この場合、JDeveloper IDEでUIデバッガを起動する際にも、このポート番号を指定する必要があります。

UIのリモート・デバッグのためのJDeveloper IDEの起動

  1. UIのローカル・デバッグと同様に、「実行」->run_icon<UI_Debugger_Project>.jprの実行」を選択して、UIデバッガのプロジェクトを実行します。
    Javaアプリケーションのメイン・メソッドが起動します。
  2. 「OJVM/JPDAにアタッチ」ダイアログが表示され、ホスト名およびUIデバッガのポートを指定するように求められます。
    -uidport オプションを使用しなかった場合は、この値をデフォルトの4030のままにしておきます。
  3. ここからは、UIデバッグのセッションが、UIのローカル・デバッグ実行時と同じように動作します。
    任意のUIデバッガの機能の実行を開始できます。

SwingおよびAWTのGraphical User Interfaceのデバッグ
Javaプログラムのリモート・デバッグ