运行多个Equinox OSGi框架

时间:2012-09-11 11:47:02

标签: java osgi equinox

我正在尝试在普通的Java应用程序中运行多个Equinox实例。

目前,我正在使用以下命令在我的应用程序中启动一个Equinox实例:

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

但是,对于需要大量启动,停止和更新的新用例,这种方法已不再适用。

相反,我希望能够同时拥有两个具有不同安装捆绑包的框架,并在必要时在它们之间进行交换。 在某些情况下,我仍然需要停止并重新启动一些捆绑包,但这种方法可以解决大部分问题。

知道如何设置这样的方法吗?

非常感谢您的帮助!

塞巴斯蒂安

2 个答案:

答案 0 :(得分:3)

您不应该使用EclipseStarter。使用OSGi launching API创建框架的多个实例。

答案 1 :(得分:0)

您可以通过为每个实例使用不同的ClassLoader来创建多个静态实例。使用设置为包含EclipseStarter类的JarFile的路径创建多个URLClassLoader。使用ClassLoader的loadClass()方法获取对EclipseStarter类对象的引用。