0

私は Eclipse プラグイン開発の初心者です。特定のプラグインの概念に出会ったとき、いくつかの疑問が頭に浮かびました。

プラグイン ベースの製品で、新しい機能を追加したい場合、たとえば特定の検証を実行する場合、検証ロジックが記述されている特定のプラグインをドロップするだけで済みます。同様に、製品から特定の機能を削除したい場合は、その機能を提供する特定のプラグインを削除するだけで済みます。

私がビルドしたRCP製品の1つで同じ操作を実行しようとしました。アプリケーションの特定の機能を無効にするために、プラグイン フォルダからプラグインを削除しようとしました。しかし、以下のようなエラーメッセージが表示されました。

!MESSAGE Bundle com.my.app.application_1.0.0.201208101553 [6] was not resolved.
!SUBENTRY 2 com.my.app.application 2 0 2012-08-17 12:37:13.256
!MESSAGE Missing imported package com.my.app.views.console_0.0.0.

!ENTRY org.eclipse.osgi 4 0 2012-08-17 12:37:13.256
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: Application "com.my.app.application.application" could not be found in the registry. The applications available are: org.eclipse.equinox.app.error.
    at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:248)
    at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

このエラーが発生する理由と、そのようなエラーを克服する方法を教えてください。

4

2 に答える 2

2

各 RCP 製品には、アプリケーションを定義するメイン プラグインがあります (詳しくは、Lars Vogel によるEclipse RCP チュートリアルを参照してください)。パッケージをエクスポートするプラグインを削除しましたcom.my.app.views.consoleが、そのパッケージはメイン プラグイン ( com.my.app.application) に必要 (インポート) です。そのため、メイン プラグインを解決できず、そのプラグインで定義されたアプリケーションが見つかりませんでした。これが例外メッセージに表示されます。

于 2012-08-17T07:43:48.043 に答える
0

アプリケーションを壊さずに com.my.app.views.console プラグインを削除できるようにしたい場合は、com.my.app.application プラグインの強い依存関係を削除する方法を見つける必要があります。 com.my.app.views.console プラグイン。

于 2012-08-18T13:15:26.847 に答える