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

标签 java shell apache-karaf karaf opendaylight

如果我想在我的插件(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/

相关文章:

java - 如何清除 JTextField 中的输入错误并存储成功的错误

java - Android Studio 有单独的 FindBugs 插件吗?

java - 读取制表符分隔的文本文件java

python - Python 中带有子进程的 Shell 管道

java - 是否可以调用属性文件以在 Apache CXF 蓝图中为 Web 服务实例化用户和密码?

java - 需要帮助理解 Java 程序流程

linux - 匹配目录中的目录

json - 将 JSON 解析为 shell 脚本中的数组

spring - Karaf 上的 Spring 应用程序示例

character-encoding - karaf配置属性乱码