3

私はEclipseに基づくRCPプロジェクトに取り組んでいます。正常に動作していますが、最近、新しい Eclipse バージョン (3.2 -> 3.5) を使用するようにアップグレードすることにしました。

少し苦労した後、新しいプラットフォームで実行されました。それから私は何かをしました。何だかわからない。最終結果は、プラグインの 1 つ (A) が依存プラグインの 1 つ (B) (これも私のもの) のクラスにアクセスしようとすると、クラスパス エラーが発生することです。

私が見る限り、プラグイン A の依存関係リストにはプラグイン B があり、コンパイラはエラーを表示しません。テストするために、1 つのクラスを含む新しいプラグイン C を作成し、プラグイン A からそのクラスにアクセスしました。これは正常に動作します。

このような問題をトラブルシューティングするためのヒントはありますか? チェックする設定のチェックリスト? 私は何時間もこれに苦労してきましたが、どこにも行きません! 何かを変更するまで機能していたので、特にイライラしました!

ありがとう

アップデート

また、このプロジェクトはかなり古く、マニフェストではなく plugin.xml を使用していると言わざるを得ません。これは問題になる可能性がありますか?アップグレードする方法はありますか?

4

5 に答える 5

3

いくつかのアイデア:

  • すべてのプロジェクトをクリーン アンド ビルドします (おそらく Eclipse の再起動後)。
  • 必要なパッケージもエクスポートされているかどうかを確認します
  • エラー ログを確認してください。ロードできないプラグインなどがある可能性があります。
  • 必要なすべてのプラグインがそこに存在するかどうか、実行構成を確認します
  • 問題がランタイム ワークベンチではなく、エクスポートされた RCP アプリで発生する場合は、エクスポート時に Eclipse と同じ設定でプロジェクトをコンパイルしているかどうかを確認します。

これらについて何か役立つことを願っています。

于 2010-06-18T11:17:46.933 に答える
2

実行構成で次のことを試すことができます。

  1. [メイン] タブで、 [ワークスペース データ] の下の [クリア] (ワークスペース) をチェックします。
  2. [構成] タブで、 [構成領域] の下で起動する前に、構成領域をクリアします。

これは、奇妙なClassNotFoundエラーが発生するたびに役立ちます。

于 2012-04-29T10:40:00.217 に答える
1

私があなたを正しく理解していれば、コンパイラエラーはありませんが、実行するとクラスが見つからないという例外が発生しますか?プロジェクトのコンテキストメニューから[PDEツール]>[クラスパスの更新]を試して、MANIFEST.MFファイルの外部で依存関係を宣言したかどうかを確認できます。これにより、実行時にコードのコンパイルが失敗します。

于 2010-06-18T21:47:53.440 に答える
1

私はかなり前にRCP用に開発しましたが、私が間違っていなければ、3.4または3.5以降、プラグイン構成で、依存プラグイン用にエクスポートされるパッケージ/クラスとそうでないパッケージ/クラスを宣言する必要があります。これは、パッケージ内で「内部」を使用してエクスポートされていないパッケージをマークするという古い規則とは異なります。

非常に古いバージョンの eclipse の plugin.xml があるため、あるプラグインから別のプラグインにエクスポートされたリソースが Eclipse RCP 3.2 で強制されなかったため、これが問題になる可能性があります。

于 2010-07-28T14:09:06.007 に答える
0

もう1つ補足します。お役に立てば幸いです。plugin.xml を開き、「ビルド」タブを確認し、「バイナリ ビルド」がどのように構成されているかを確認します。これは、どのファイルがコンパイルおよびエクスポートされるかに影響します。ここでバイナリビルドを参照してください: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fbuild.htm

于 2014-03-08T14:15:56.740 に答える