【问题标题】:Is there any Java tool to communicate with an external CLI?是否有任何 Java 工具可以与外部 CLI 进行通信?
【发布时间】:2012-04-26 17:27:42
【问题描述】:

我需要一种与外部工具进行通信的方法,该工具具有来自我的 Java 应用程序的命令行界面。有什么方便的工具/库可以减轻痛苦吗?相信我,我已经用谷歌搜索了足够多的东西。谢谢!

【问题讨论】:

标签: java command-line-interface


【解决方案1】:

您可以使用Runtime.exec() 来执行操作系统的外部命令。不过,请注意使用它的注意事项 - 请务必先阅读此article

如果这对您的需求来说过于简单,请查看ProcessBuilder。它从 Java 1.5 开始可用,来自 release notes

新的 ProcessBuilder 类提供了一种比 Runtime.exec 更方便的调用子流程的方法。特别是,ProcessBuilder 可以很容易地使用经过修改的流程环境(即基于父流程环境,但有一些更改)启动子流程。

【讨论】:

  • 谢谢,但我已经过了Runtime.exec()
  • @AlexanderEliseyev 我用另一个更好的选择更新了我的答案
  • 我需要一种与进程通信的方法,而不是启动它。在与外部 CLI 对话时,我需要一个工具来简化请求/响应的处理。
【解决方案2】:

我最终使用了来自 Intellij IDEA 平台 API 的进程处理程序(更具体地说,com.intellij.execution.process.OSProcessHandler)+ 编写我自己的基于命令的小型框架,其中每个命令都知道如何执行自身(写入)并解析来自进程的响应(读取)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2015-08-21
    • 2016-08-06
    • 2015-12-02
    • 2020-06-16
    • 1970-01-01
    相关资源
    最近更新 更多