我想在我的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但不起作用。
答案 0 :(得分:0)
平台不是来自OSGi规范。这是Eclipse特有的。所以我认为这只有在使用eclipse启动器启动捆绑包时才有效。
你似乎已经这样做了。问题是如何从您的控制台应用程序引用捆绑包。要使其工作,请参阅有关how to call and OSGi service from non OSGi code的堆栈溢出问题。