Дано:IOException при запуске процесса
$pwd
/home/kmeredith/src/linux_sandbox
$ls a.txt
a.txt
$cat a.txt
$
Затем я попытался запустить scala.sys.process.Process
что бы добавляемых «привет» в a.txt
:
import scala.sys.process._
import java.io.File
scala> Process(List("echo 'hi' >> a.txt"), new File("."))
res3: scala.sys.process.ProcessBuilder = [echo 'hi' > a.txt]
scala> res3.!
java.io.IOException: Cannot run program "echo 'hi' > a.txt" (in directory "."): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at scala.sys.process.ProcessBuilderImpl$Simple.run(ProcessBuilderImpl.scala:69)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.run(ProcessBuilderImpl.scala:98)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang(ProcessBuilderImpl.scala:112)
... 32 elided
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 35 more
Обратите внимание, что это также не удалось, когда я дал полный путь :
scala> Process(List("echo 'hi' > a.txt"), new File("/home/kmeredith/src/linux_sandbox"))
res0: scala.sys.process.ProcessBuilder = [echo 'hi' > a.txt]
Почему я вижу эту ошибку?
scala> res0.!
java.io.IOException: Cannot run program "echo 'hi' > a.txt" (in directory "/home/kmeredith/src/linux_sandbox"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at scala.sys.process.ProcessBuilderImpl$Simple.run(ProcessBuilderImpl.scala:69)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.run(ProcessBuilderImpl.scala:98)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang(ProcessBuilderImpl.scala:112)
... 32 elided
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 35 more
Вы уверены, что относительные пути работы? http://stackoverflow.com/questions/11576767/setting-current-working-directory-when-executing-a-shell-process –
Нет, я не уверен относительно относительных путей (хороший вопрос). Но это тоже не получилось, когда я прошел полный путь. –