1

プレーンJavaアプリケーション内で複数のEquinoxインスタンスを実行しようとしています。

現在、以下を使用して、アプリケーションでEquinoxの1つのインスタンスを開始しています。

EclipseStarter.startup(new String[]{"-console", "-dev", "bin"}, null);

ただし、バンドルの開始、停止、更新を大量に行う必要がある新しいユースケースでは、このアプローチではもはや十分ではありません。

代わりに、インストールされているバンドルが異なる2つのフレームワークを同時に保持し、必要に応じてそれらを交換できるようにしたいと思います。場合によっては、いくつかのバンドルを停止して再開する必要がありますが、そのようなアプローチでほとんどの問題に対処できます。

このようなアプローチをどのように設定できるか考えてみてください。

よろしくお願いします!

セバスチャン

4

2 に答える 2

3

EclipseStarterは使用しないでください。OSGi起動APIを使用して、フレームワークの複数のインスタンスを作成します。

于 2012-09-11T12:50:33.313 に答える
0

静的インスタンスごとに異なるClassLoaderを使用して、複数の静的インスタンスを作成できます。EclipseStarterクラスを含むJarFileにパスを設定して複数のURLClassLoaderを作成します。ClassLoaderのloadClass()メソッドを使用して、EclipseStarterクラスオブジェクトへの参照を取得します。

于 2012-09-11T12:08:50.230 に答える