2012-01-10 13 views
0

データと機能の分離のために定義されたプラグインがいくつかあるRCPアプリケーションがあります。プラグインがアプリケーションで起動していない

アプリケーション起動時にアクティブにするすべてのプラグインが必要です(ネットワークイベントに登録する必要があります)。私はこのボックスがチェックされているときにxmlを見ることから、このクラスがロードされているときにこのプラグインをアクティブにします。チェックされていません。これは実際には遅延ロードインジケータです。

.productの設定ページにプラグインを追加すると、各アクティベータに対してClassNotFoundExceptionsが取得されます。

RCPアプリケーションの起動時に自動的にプラグインを起動する最も良い方法は何ですか?

答えて

1

私はむしろ、そのプラグインを使用すると、Eclipseは何を行うことができ、その場合には他のプラグイン

の最低限の知識を持っていると思います:ランチャーでの拡張ポイントを定義して起動する必要があるすべてのプラグインは、その拡張ポイントを拡張してみましょう。

+0

私は拡張機能をあまり使っていませんでした。このチュートリアルでは、作成方法を示しています: http://www.vogella.de/articles/EclipseExtensionPoint/article.html#extensionpoints_overview これを行う方法はありますか?各クライアントは何もしないインターフェイスを実装する必要がありますか? –

+0

@SamBrinckはい、確かです。拡張ポイントの必須属性は、名前とIDだけです。 Eclipseヘルプの[プラグイン拡張ポイント](http://help.eclipse.org/indigo/topic/org.eclipse.pde.doc.user/guide/tools/editors/manifest_editor/extension_points.htm)を参照してください。 –

0

起動時に必要なすべてのクラスに触れていることを確認します(コードを取得するためには何とかやる必要があります)行く)。私は起動時にプラグインのアクティベーションを強制する非推奨の方法がいくつかあると思いますが、そこに行く必要はありません。一般的には、プラグインでクラスを呼び出すだけで、プラグインがロードされ、すべてが正しく設定されていれば起動されます。特別な操作は必要ありません。

あなたのアプリは、おそらく(のようなまたはそのような何か(ブートには多くのフックがあります)、単に理にかなっているし、あなたのコードを呼び出すものを選ぶのEclipseの起動によって呼び出されるクラスのいずれかを持っている。

+0

私は、ワークベンチのやり取りを担当するランチャープラグインを持っています。プラグインには他のプラグインについての知識はほとんどありませんが、他に見つけられないものがあればそれを行います。ありがとう –

+0

もう1つのことは、 'config.ini'ファイルを変更して' osgi.bundles'プロパティに追加することで、プラグインを明示的に起動することです。 –