如何在代码中执行osgi命令

时间:2016-03-15 17:09:36

标签: java eclipse-plugin osgi equinox

我正在使用Equinox。我想在代码中执行osgi命令。

离。安装捆绑命令

public void start(BundleContext context) throws Exception {

    String cmd = "install file:///e://testBundle.jar"

    // How can I execute cmd in code?
    ...
}

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您可以通过BundleContext或Bundle实例管理bundle:

  1. BundleContext.installBundle允许您从网址

  2. 安装捆绑包
  3. 您可以使用BundleContext找到Bundle实例。请参阅示例BundleContext.getBundles()。在Bundle个实例上,您可以致电start()stop()update()uninstall()

  4. 请参阅:BundleContextBundle

    如果你真的想要访问shell并执行命令,Equinox使用Apache Felix Gogo Shell。您应该获得CommandProcessor的引用,从此处理器创建CommandSession,并在此会话中致电execute

    @Reference
    CommandProcessor commandProcessor;
    
    ...
    
    CommandSession commandSession = commandProcessor.createSession(System.in, System.out, System.err);
    commandSession.execute("..");