起動構成は、そのプログラムを起動する場合、実行可能プログラムを要求されたモードで起動することを担当します。 起動の実装は各起動構成の指定に依存しますが、ほとんどのプラグインではコマンド行がビルドされ、ランタイムの exec がコールされてプログラムが開始します。 DebugPlugin クラスでは、ランタイム exec を起動し、起こりうる例外を処理するための、便利な方法が実装されています。 クライアントは、exec のコマンド行および作業ディレクトリーを指定できます。
Process p = DebugPlugin.exec(cmdLine, workingDirectory);
プログラムを実行する java.lang.Process を作成した後で、それをデバッグ・プラグインで管理する必要があります。 起動のために、プロセスは、起動プログラムを表す ILaunch に関連付けられる必要があります。 デバッグ・プラグインは、システム・プロセス IProcess に関するラッパーを定義します。 それによりクライアントは、関連する ILaunch にアクセスして、その名前付き属性をプロセスに割り当てられるようになります。 さらに、 IProcess が、プロセスのラベルを定義し、 IStreamsProxy を、システム・プロセスの入力、出力、およびエラーの各ストリームへのクライアント・アクセスを提供するプロセスに関連付けます。 このプロセス・ラッパーは、 DebugPlugin のユーティリティー・メソッドを使用しても作成できます。
IProcess process= DebugPlugin.newProcess(launch, p, "My Process);
名前付き属性のマップも提供できます。
多くのプラグインは、単に DebugPlugin のユーティリティー・メソッドに依存して、システム・プロセスの起動、および IProcess へのラッピングを行います。 ラッパーの作成においてさらに制御を行う必要があるプラグインに対しては、プロセス・ファクトリーを起動構成に関連付けできます。 プロセス・ファクトリーは、プラグインの特殊な要件に合致する IProcess の作成に使用されます。 プロセス・ファクトリーは ID により参照され、起動構成の DebugPlugin.ATTR_PROCESS_FACTORY_ID 属性に保管される必要があります。
プロセス・ファクトリー ID およびそれを実装するクラスの間の関連付けは、 org.eclipse.debug.core.processFactories 拡張ポイントを使用して行われます。
以下の例には、Ant プラグインがそのランチャーのプロセス・ファクトリーをセットアップする方法が示されています。
<extension point="org.eclipse.debug.core.processFactories"> <processFactory class="org.eclipse.ant.internal.ui.launchConfigurations.RemoteAntProcessFactory" id="org.eclipse.ant.ui.remoteAntProcessFactory"> </processFactory> </extension>
適切な起動構成の属性にプロセス・ファクトリー ID を保管することは、登録プラグインが行う必要があります。