Run Managerについて

Run Managerは、JDeveloper内のプロセスの実行を管理します。プロセスは、抽象クラスRunProcessの拡張により表されます。Javaプロセスは、サブクラスJRunProcessの拡張により表されます。プロセスは、ユーザーが「実行」メニューの項目、またはポップアップ・メニューかツールバーの対応する項目を選択すると起動されます。ユーザーは、Run Managerのウィンドウで既存のプロセスにアクセスできます。

Run Managerは、Runnerクラスのシングルトン・インスタンスにより表され、Factoryデザイン・パターンを実装します。また、IdeクラスのstaticメソッドgetRunnerにより取得されます。

JDeveloperでは、JavaプログラムをRunner、デバッガ、プロファイラ、CodeCoachなどの様々なモードで起動するサポートを提供します。各モードはJRunProcessのサブクラスにより表されます。ユーザーがこれらの項目の1つを選択すると、RunProcessインスタンスが作成されます。JRunProcessインスタンスでは、選択した実行モードに適したオプションを含むコマンドライン文字列が作成されます。

プロセスは、スタータ・ファクトリによって作成されるスタータで起動されます。スタータは、Starterクラスまたはその拡張機能のインスタンスで、スタータ・ファクトリはStarterFactoryインタフェースの実装です。Run Managerは、スタータ・ファクトリのレジストリです。新規に作成された実行プロセス(RunProcessインスタンス)は、次のように進められます。

  1. Run Managerは、IDEで現在選択されているノード(ファイルまたはその他のデータ・オブジェクト)に対して登録されたスタータ・ファクトリを選択します。
  2. スタータ・ファクトリのcanStartメソッドに、実行プロセスおよびノードが渡されます。このメソッドでは、(mainメソッドの含まれないクラスに対して、Javaアプリケーションのスタータが作成されなかった場合などに)Nullを返してプロセスを中止するか、任意のオブジェクトを返して受入れを示します。
  3. canStartにより返された実行プロセス、ノードおよびオブジェクトがスタータ・ファクトリのcreateStarterメソッドに渡され、スタータが作成されます。
  4. Run Managerが、スタータのstartメソッドをコールします。

拡張機能では、Javaプログラムの新規の実行モードを実装できます。このような拡張機能には次の機能が必要です。

より一般的な拡張機能では、Java以外の言語によるプログラムなど、カスタム・ノード・タイプのRunnerを提供できます。このような拡張機能には次の機能が必要です。

ノード・タイプは、複数のスタータ・ファクトリに対して登録できます。たとえばJavaNodeクラスは、JavaアプリケーションとJavaサーブレットの両方のスタータ・ファクトリに登録されます。またスタータ・ファクトリも、複数のノード・タイプに対して登録できます。


IDEの構造について

oracle.ide.Ide
oracle.ide.runner.Runner
oracle.ide.runner.RunProcess
oracle.ide.runner.Starter
oracle.ide.runner.StarterFactory
oracle.jdeveloper.model.JavaNode
oracle.jdeveloper.runner.JRunProcess