Reputation: 19743
why its throwing error on screen instead of capturing in stderr?
scala> val stderr = new StringBuilder
stderr: StringBuilder =
scala> val stdout = new StringBuilder
stdout: StringBuilder =
scala> val k = Seq("ls /sdds") ! ProcessLogger(stdout append _, stderr append _)
java.io.IOException: Cannot run program "ls /sdds": error=2, No such file or directory
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
at scala.sys.process.ProcessBuilderImpl$Simple.run(ProcessBuilderImpl.scala:69)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.run(ProcessBuilderImpl.scala:100)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder$$anonfun$runBuffered$1.apply(ProcessBuilderImpl.scala:148)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder$$anonfun$runBuffered$1.apply(ProcessBuilderImpl.scala:148)
at scala.sys.process.ProcessLogger$$anon$1.buffer(ProcessLogger.scala:99)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.runBuffered(ProcessBuilderImpl.scala:148)
at scala.sys.process.ProcessBuilderImpl$AbstractBuilder.$bang(ProcessBuilderImpl.scala:114)
... 32 elided
Caused by: java.io.IOException: error=2, No such file or directory
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
... 40 more
scala> stderr.toString()
res26: String = ""
Upvotes: 0
Views: 282
Reputation: 51271
The error you're seeing isn't captured in the stderr
StringBuilder because it isn't coming from the launched process. The process isn't executing because the command isn't being parsed correctly.
Try either "ls /sdds" !
or Seq("ls", "/sdds") !
and see if that works.
val pl = ProcessLogger(stdout append _, stderr append _)
val k = "ls /sdds" ! pl
I had to separate the ProcessLogger
creation from the ProcessBuilder
but that just might have been the worksheet environment I'm working in.
Upvotes: 3