如何在代码中执行 osgi 命令
How can I execute osgi command in code
我正在使用 Equinox。我想在代码中执行 osgi 命令。
例如。安装捆绑命令
public void start(BundleContext context) throws Exception {
String cmd = "install file:///e://testBundle.jar"
// How can I execute cmd in code?
...
}
感谢帮助
您可以通过 BundleContext 或 Bundle 的实例管理捆绑包:
BundleContext.installBundle
允许您从 URL
安装一个包
您可以找到一个带有 BundleContext 的 Bundle
实例。参见示例 BundleContext.getBundles()
。在 Bundle
实例上,您可以调用 start()
、stop()
、update()
或 uninstall()
参见:BundleContext and 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("..");
我正在使用 Equinox。我想在代码中执行 osgi 命令。
例如。安装捆绑命令
public void start(BundleContext context) throws Exception {
String cmd = "install file:///e://testBundle.jar"
// How can I execute cmd in code?
...
}
感谢帮助
您可以通过 BundleContext 或 Bundle 的实例管理捆绑包:
BundleContext.installBundle
允许您从 URL 安装一个包
您可以找到一个带有 BundleContext 的
Bundle
实例。参见示例BundleContext.getBundles()
。在Bundle
实例上,您可以调用start()
、stop()
、update()
或uninstall()
参见:BundleContext and 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("..");