標準の入力ストリームからの入力を受け入れる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コマンドは両方のプラットフォームに共通であり、その使用法は私の目的では構文的に同じです。これは、エコーがPATHにないのと同じくらい簡単ですか?Windowsに別のecho.exeもありますか、それとも他のものにバンドルされていますか?呼び出されたプログラムは、この問題を解決できない場合にフォールバックする一時ファイルからの入力を受け入れるようにすることができます。