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

How to call karaf console command in Java

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

ex: opendaylight-user@root> snmp4sdn:printdb

"org.apache.felix.service.command.CommandProcessor"可以应付吗?

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

CommandProcessor,您可以创建一个 CommandSession,然后在此会话中调用 execute

两个注意事项:

  • 在 Karaf4 中,服务发生了变化——它不再依赖于 Gogo
  • 所有 shell 命令都使用底层 osgi 服务。使用此服务总是比创建命令和 "parsing the outputstream" 更好。例如,您可以使用 BundleContext.installBundle 安装 Bundle 或通过 FeaturesService
  • 安装功能

你的命令,例如,使用org.opendaylight.snmp4sdn.ICore服务。参见:PrintDB