我正在尝试使用 Scala 内部的外部程序,该程序接受来自标准输入流的输入。
与以下代码大致等效的代码在 Linux 上运行,但在 Windows 上运行时引发异常(在 Windows 7 上测试)。异常的描述表明找不到 echo 命令。
def invokeProgram(data : String) {
import scala.sys.process._
val cmdEcho = Seq("echo", data)
val cmdProgram = Seq("program")
println((cmdEcho #| cmdProgram).!!)
}
该代码在 Linux 上正常工作,但在 Windows 上失败,但 echo 命令对两个平台都是通用的,并且它的用法在语法上对于我的目的是相同的。这就像 echo 不在 PATH 中一样简单吗?Windows 上什至有单独的 echo.exe 还是捆绑到其他东西中?可以使调用的程序从临时文件中接受其输入,如果我无法解决此问题,我将使用该文件。