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

问题描述

似乎不可能在具有其他工作目录并输入重定向的Scala上运行进程。

这通常是我在认目录下的Scala上运行进程的方式:

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

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

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

似乎不可能将两者结合起来。

我想念任何东西吗?

解决方法

#<ProcessBuilder上的一种方法,因此您可以调用:

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

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

因此,对于myFile.txt中的someDir,呼叫可能看起来像这样:

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

但是

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...