2009-06-26 20 views
0

に使用間違った瓶私は私のEclipseプラグインとの深刻なprobleamを持っている...Eclipseプラグイン - ランタイム

私のプラグインは、他の2つのプラグインに依存します。すべてのプラグイン(プラグインを含む)はMozilla Rhinoエンジンを使用しています。そのうち2つはjs.jar(バージョン1.4)です。しかし、私のプラグインはまだリリースされていない新しいバージョンを使用しており、MyRhino.jarにパックされています。

開発中、すべてがうまく行く - コード補完がサイの私の特別なバージョンから私のクラスやメソッドを提供しています、エラーなしなど

しかし、私は私のプラグインを実行すると、サイの異なるバージョンが使用されていると私が得ますClassNotFoundExceptionなどのランタイム例外。

実行時に同じjarを開発時と同じように使用するようにeclipseに指示するにはどうすればよいですか?

NetBeansでプラグインを開発していたとき、ソリューションは簡単でした。別のモジュールにjarファイルをラップし、エクスポートするパッケージを設定し、この新しいモジュールに依存関係を宣言しました。 Eclipseでsimmilarソリューションを見つけました。私のためには機能しません - 私はラッパープラグインに依存していると宣言しましたが、パッケージやクラスは開発時でも利用できませんでした。

私はこのプロブレムと数時間を過ごしましたが、それを解決していないので、助けに感謝します。みんな、ありがとう。

答えて

1

最後に、私はそれを解決してきました。..

でラッパープラグインフォーム既存のjarファイルを作成することは簡単ですしかし、キャッチは、バンドルクラスパスにjarが含まれていないということです(予想通り)。あなたの仕事の半分しか実行しないことを私は混乱させます。/

ラッパープラグインバンドルクラスパスにjarを挿入すると、すべての動作が完了します。

とにかくあなたの答えのためのピーターありがとう:)

+0

あなたが解決したと聞いてよかったです。 –

3

依存関係が正しいことを確認してください。コードが新しいバージョンのライブラリに依存している場合は、MANIFEST.MFにそのコードを示す必要があります。例えば。あなたのMyRhino.jarは、それがまだリリースされていない場合でも、正しいバージョン(例えば1.5.0)を指定する必要があります

Require-Bundle: org.mozilla.rhino;bundle-version="1.5.0" 

バンドルorg.mozilla.rhinoが必要な場合は、あなたが必要とする最低限のバージョンを指定します
Bundle-Version: 1.5.0.qualifier 

(MyRhino.jarがまだプラグインに変換されていない場合は、手動でそれを実行する必要があります。あなたは、単にEclipseで既存のJARを使用して、新しいプラグインプロジェクトをcraeteすることができます)

Alternativaly、あなたがMyRhino.jarをラップすることができますプラグインに追加し、他のプラグインへの依存関係を削除します。これを行うには、Bundle-ClassPathを使用します(詳細はhttp://www.aqute.biz/Blog/2007-02-19を参照)。あなたが直接あなたのプラグインにあなたのMyRhino.jarを入れた場合は、バンドル・クラスパスが次のようになります。

Bundle-ClassPath: .,MyRhino.jar 
+0

私は何かが欠けているように見えます。まず、私はあなたが説明する別の方法を使用しました。それは私のために働かなかった(私が上に書いたように)。 これで、既存のjarファイルからプラグインを作成し、このプラグインへの依存関係を宣言しました。 Bundle-ClassPathからエントリを削除しました。その後、プロジェクトをリフレッシュし、クラスパスを更新しました。クラスのインポートで多くのエラーが表示されるようになりました.Jarラップされたプラグインのクラスはプラグインプロジェクトには表示されません。私は何をしていますか? –