3

eclipse juno で eclipse 機能プロジェクトをビルドしました。IDE からプログラムを起動すると、すべて問題なく、コンソールにエラーは表示されません。

製品をエクスポートすると実行されますが、Application.e4xmi ファイルで作成したパーツの内容が表示されません (灰色の背景のみ)。エクスポートされたフォルダーの構成フォルダーを確認すると、次のエラーを含むログ ファイルがあります。

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-19 19:22:13.859
MESSAGE Unable to load class 'be.yt.diepvriezer.ui.handlers.ExitHandler' from bundle '2'

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-19 19:22:13.859 !MESSAGE クラス 'be.yt.diepvriezer.ui.handlers.ExitHandler' をバンドル '2' からロードできません!STACK 0 java.lang.ClassNotFoundException: be.yt.diepvriezer.ui.handlers.ExitHandler at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) at org.eclipse.osgi.internal.loader.BundleLoader org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) の .findClass(BundleLoader.java:421) org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) の) java.lang.ClassLoader.loadClass(ClassLoader.java:247) で .....

アプリケーション モデルで作成したすべてのハンドラーとパーツについても同様です。

build.properties ファイルとマニフェスト ファイルを確認したところ、すべて揃っています。

この問題を解決する方法を教えてください。

4

2 に答える 2

3

キャッシュされた依存関係を確実にクリアするために、「-clean」を使用してアプリを起動するか、「osgi.clean=true」を定義する必要がある場合があります。クリーンなワークスペースで起動すると、同じ効果があります(キャッシュされた値はありません)。

「OSGiフレームワークとEclipseランタイムで使用されるキャッシュデータはすべて消去されます。これにより、バンドル依存関係の解決とEclipse拡張レジストリデータの保存に使用されるキャッシュが消去されます。このオプションを使用すると、Eclipseはこれらのキャッシュを強制的に再初期化します。」

詳細はこちら

于 2012-08-20T17:01:33.380 に答える
0

解決策はありません。確認事項のみです。

エクスポートされた製品のサブディレクトリを見ると、plugins/あなたのプラグインが含まれていますbe.yt.diepvriezer.ui.handlers.ExitHandlerか? そうでない場合、そのプラグインを製品に追加する必要があります。IDE 内から RCP 製品を起動すると、通常、ワークスペース内のすべてのプラグインが含まれますが、製品をエクスポートするときは、実際にファイルに含めたいすべてのプラグインを*.product(直接または*.features 経由で)リストする必要があります。

そのプラグイン jar ファイルを解凍すると、...ExitHandlerクラスは本当にそこにあるのでしょうか? そうでない場合は、製品のエクスポートで何かが失敗しました。

は、コードと同じプラグインでApplication.e4xmiあなたを参照していますか? ..ExitHandlerそうでない場合、 を提供する「他の」プラグイン内のコードは、..ExitHandlerを含むプラグインのクラス ローダーからアクセスできませんApplication.e4xmi

于 2012-07-20T00:25:09.110 に答える