2011-08-03 13 views
1

私はEclipseプラグインの開発には新しく、いくつかのEclipseプラグインのコードを継承しました。私は比較的簡単なことをする方法を理解しようとしています。Eclipseプラグインでプロジェクトクラスを表示するにはどうすればいいですか?

プロジェクトのJavaクラスを右クリックするとウィザードが開き、選択したJavaクラスの完全修飾クラス名がテキストフィールドに表示されます。 「次へ」をクリックすると、コードはCClass.forName(s)を実行しようとします。ここで、sはクラス名です。

問題は、Class.forNameが例外をスローします。例外は、EclipseプロジェクトのJavaクラスが実際にはウィザードのクラスパスにないためです。

誰でも正しい方向に向けることができますか? Eclipseプロジェクトのクラスがクラスパス上でウィザードに表示されるようにするにはどうすればよいですか?

答えて

1

Class.forName()を使用することはできません。あなたのプラグインが動作するJavaプロジェクトのJavaクラスは、プラグインと同じプロセスでもなく、どのクラスローダーにも読み込むことはできません。

JavaプロジェクトのJavaファイルで動作するプラグインを作成するには、JDTのJavaモデルまたはJava AST APIが必要です。

http://www.vogella.de/articles/EclipseJDT/article.html

1

各プラグインは、異なるクラスローダによってロードされます。ただし、他のプラグインからクラスをロードする方法があります。これらを読むと、あなたがクラスをロードするクラスローダを使用し、その後、最初に選択されたJavaプロジェクトでクラスローダを取得する必要があります

http://www.eclipsezone.com/articles/eclipse-vms/

http://wiki.eclipse.org/index.php/Context_Class_Loader_Enhancements

関連する問題