运行 具有不同工作目录和输入重定向的 Scala 进程

Run a process on Scala with a different working directory and input redirect

似乎不​​可能 运行 在 Scala 上使用另一个工作目录和输入重定向的进程。

这就是我通常 运行 在 Scala 上使用默认目录的进程的方式:

Process(cmd, new File("someDir")).!!

这就是我通常 运行 使用输入重定向的 Scala 进程的方式:

("someCmd -someParam" #< "myFile.txt").!!

这两者好像没法结合..

我错过了什么吗?

#<ProcessBuilder 上的一个方法,所以你可以调用:

(Process("someCmd -someParam", new File("someDir")) #< new File("myFile.txt")).!!

请注意,您作为输入传递的 File 必须相对于 Scala 进程的工作目录指定。但是,如果您将文件路径作为参数传递给命令,则该路径必须相对于命令的工作目录。

因此,对于 someDir 中的 myFile.txt,调用可能如下所示:

(Process("someCmd -someParam", new File("someDir")) #< new File("someDir/myFile.txt")).!!

但是,

Process("cat myFile.txt", new File("someDir")).!!