0

Eclipse プラグインに重大な問題があります..

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

開発中はすべてうまくいきます。コード補完により、特別なバージョンの rhino のクラスとメソッドが提供され、エラーなどは発生しません。

しかし、プラグインを実行すると、異なるバージョンの Rhino が使用され、ClassNotFoundException などの実行時例外が発生します。

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

私が NetBeans でプラグインを開発していたとき、解決策は単純でした。jar を別のモジュールにラップし、エクスポートするパッケージを設定して、この新しいモジュールへの依存関係を宣言しました。Eclipse で同様の解決策を見つけましたが、うまくいきませんでした。ラッパー プラグインへの依存関係を宣言しましたが、パッケージとクラスは開発時でも利用できませんでした。

私はこの問題に何時間も費やしましたが、解決していないので、助けていただければ幸いです。みんな、ありがとう。

4

2 に答える 2

3

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

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

MyRhino.jar は、まだリリースされていませんが、正しいバージョン (1.5.0 など) を指定する必要があります。

Bundle-Version: 1.5.0.qualifier

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

または、MyRhino.jar をプラグインにラップして、他のプラグインへの依存関係を削除することもできます。これを行うには、Bundle-ClassPath を使用します (詳細については、 http: //www.aqute.biz/Blog/2007-02-19 を参照してください)。MyRhino.jar をプラグインに直接配置する場合、Bundle-ClassPath は次のようになります。

Bundle-ClassPath: .,MyRhino.jar
于 2009-06-26T11:42:35.770 に答える
1

ついに私はそれを解決しました。

eclipseの新しいプロジェクトウィザードで既存のjarからラッパープラグインを作成するのは簡単です。しかし、問題は、ウィザードがバンドルクラスパスにjarを含まないことです(私が予想したように)。ウィザードがあなたのために仕事の半分しかやっていないことを(少なくとも私にとっては)かなり混乱させます:/

jarをラッパープラグインバンドルクラスパスに挿入すると、everytningが機能します。

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

于 2009-06-29T09:08:15.990 に答える