如果我想在我的插件(java)中执行karaf shell命令,该怎么做?
ex: opendaylight-user@root> snmp4sdn:printdb
“org.apache.felix.service.command.CommandProcessor”可以处理它吗?
最佳答案
在 Karaf 3 中,您必须使用 Felix Gogo 服务,即 CommandProcessor
。
从 CommandProcessor
中,您可以创建一个 CommandSession
,然后在此 session 上调用 execute
。
关于此的两个注释:
- 在 Karaf4 中,服务发生了变化 - 它不再依赖于 Gogo
- 所有 shell 命令都使用底层 osgi 服务。使用此服务总是比创建命令和“解析输出流”更好。例如,您可以使用
BundleContext.installBundle
安装 Bundle 或通过FeaturesService
安装功能
例如,您的命令使用 org.opendaylight.snmp4sdn.ICore
服务。请参阅:PrintDB
关于java - 如何在Java中调用karaf控制台命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36010963/