これはあなたが説明している状況だと思います...
Eclipse Java (JDT) ユーザーにインストールしてもらいたいプラグインがあります。Java プロジェクトでは、プラグインで Java クラスの一部を使用できるようにしたいと考えています。
Java では、クラスはクラス ローダーによってクラスパス上で検出される必要があります。JDT は、「クラスパス コンテナー」を通じてプロジェクトのクラスパスを管理します。この最初の例は、Java プロジェクトを作成するときです。JDT は「JRE System Library」をコンテナとして追加します。これは、パッケージ エクスプローラーのプロジェクトの下に表示されます。
この別の例は、JUnit プラグインです。JUnit テスト ケースを JDT プロジェクトに初めて追加すると、JUnit ライブラリをビルド パスに追加するように求めるダイアログが表示されます。(これは、JUnit プラグインの New File Wizard の明示的な動作です。) 同意すると、Package Explorer に「JUnit 4」コンテナが表示されます。
さらに別の例: PDE は JDT の機能を拡張します。プラグイン プロジェクトを作成すると、PDE は、プラグイン マニフェストで宣言したプラグインの依存関係に基づいて管理する「プラグインの依存関係」コンテナーを追加します。
ユーザーは、お気に入りのライブラリ用に独自のクラスパス コンテナーを作成して参照できます。
しかし、もちろん、ライブラリ プロバイダとして、JUnit プラグインのようにライブラリを提供する必要があります。これを行うには、プラグインで次のようにします。
- JDT Core への依存関係を追加する
- この拡張ポイントから拡張します: org.eclipse.jdt.core.classpathContainerInitializer
ウィザード ページでクラスパス コンテナー エントリを作成または編集する場合:
- JDT UI への依存関係を追加する
- この拡張ポイントから拡張します。
org.eclipse.jdt.ui.classpathContainerPage
一部のプラグインは、ウィザード ページを使用してコンテナーをカスタマイズします (JUnit では JUnit 3 または 4 を選択できます)。コンテナに関する情報を提供するためだけにページを使用する人もいます。
JDT ドキュメントのトピックJava ビルド パスの設定を参照し、使い慣れた例のソース コードを相互参照してください。
ここに良い記事があります: Simplify Eclipse classpaths using classpath containers
質問に答えるには:
initialize
のサブクラスのメソッドを使用して、クラスをクラスパスに追加する必要がありますClasspathContainerInitializer
。
- はい、クライアントが呼び出すメソッドは public であり、クラスパスに追加するクラスのメンバーである必要があります。