如何在Java中调用karaf控制台命令

时间:2016-03-15 12:10:06

标签: java shell apache-karaf karaf opendaylight

如果我想在我的插件(java)中执行karaf shell命令,该怎么做?

  

例如:opendaylight-user @ root> snmp4sdn:printdb

“org.apache.felix.service.command.CommandProcessor”可以处理吗?

1 个答案:

答案 0 :(得分:1)

在Karaf 3中,您必须使用Felix Gogo服务,即CommandProcessor

CommandProcessor,您可以创建CommandSession,然后在此会话中致电execute

关于此的两点说明:

  • 在Karaf4中,服务已经改变 - 它不再依赖于Gogo了
  • 所有shell命令都使用底层的osgi服务。使用此服务而不是创建命令和解析输出流"总是更好。例如,您可以使用BundleContext.installBundle安装捆绑包,或通过FeaturesService
  • 安装功能

例如,您的命令使用org.opendaylight.snmp4sdn.ICore服务。请参阅:PrintDB