我正在使用Equinox。我想在代码中执行osgi命令。
离。安装捆绑命令
public void start(BundleContext context) throws Exception {
String cmd = "install file:///e://testBundle.jar"
// How can I execute cmd in code?
...
}
感谢您的帮助
答案 0 :(得分:4)
您可以通过BundleContext或Bundle实例管理bundle:
BundleContext.installBundle
允许您从网址
您可以使用BundleContext找到Bundle
实例。请参阅示例BundleContext.getBundles()
。在Bundle
个实例上,您可以致电start()
,stop()
,update()
或uninstall()
请参阅:BundleContext和Bundle
如果你真的想要访问shell并执行命令,Equinox使用Apache Felix Gogo Shell。您应该获得CommandProcessor
的引用,从此处理器创建CommandSession
,并在此会话中致电execute
。
@Reference
CommandProcessor commandProcessor;
...
CommandSession commandSession = commandProcessor.createSession(System.in, System.out, System.err);
commandSession.execute("..");