如何从java控制台应用程序中使用OSGI插件

时间:2016-12-09 10:04:49

标签: java plugins jar osgi equinox

我想在我的java应用程序(简单的控制台应用程序)中使用jar(OSGI平台的插件)。

我尝试以标准方式使用它,包括我的classpath e instanziate对象中的所有jar,然后调用方法A, 但同一点方法A调用涉及平台的指令:

Platform.getBundle("com.example.resource").getResource("icons/icon.png")

正如预期的那样,它给了我一个空指针异常。

我尝试不同的解决方案,但没有任何工作(我不是osgi世界的专家)。 有一种简单的方法可以初始化所有bundle和plugins,所以我可以调用方法A?

我尝试创建org.eclipse.equinox.launcher.Main实例,使用-initialize调用run,然后调用方法A但不起作用。

1 个答案:

答案 0 :(得分:0)

平台不是来自OSGi规范。这是Eclipse特有的。所以我认为这只有在使用eclipse启动器启动捆绑包时才有效。

你似乎已经这样做了。问题是如何从您的控制台应用程序引用捆绑包。要使其工作,请参阅有关how to call and OSGi service from non OSGi code的堆栈溢出问题。