終了したら、外部プロセスを呼び出して、その終了コードと標準出力の両方を読み取る方法は?
を使用sys.Process
すると、成功のために0以外の異なる終了コードで例外がスローされます。
(私はfreenode #javaでこの質問をし、解決策を見つけたらここに投稿するように要求されたので、ここに行きます)
簡単なアプローチは、sys.ProcessBuilderを使用することです。
def RunExternal(executableName: String, executableDir: String) : (Int, List[String]) = {
val startExecutionTime = System.currentTimeMillis()
val pb : ProcessBuilder = new ProcessBuilder (executableName)
pb.directory(new java.io.File(executableDir))
val proc = pb.start()
proc.waitFor()
val exitCode = proc.exitValue()
val output = scala.io.Source.fromInputStream(proc.getInputStream).getLines.toList
val executionTime = System.currentTimeMillis() - startExecutionTime
logger.info(String.format(s"Process exited with exit code: ${exitCode}."))
logger.info(String.format(s"Process took ${executionTime} milliseconds."))
(exitCode, output)
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加