2013年5月3日金曜日

Java コマンド実行 execとProcessBuilder

Javaから外部コマンドを実行する際にはexecでは無くProcessBuilderを使いましょう。

Javaの内部実装もProcessBuilderですし、何より標準出力と標準エラー出力のバッファが小さいことによるデッドロックが起こりません。
後、標準出力と標準エラー出力を簡単にマージできちゃいます。


ffmpegを使っているときに、標準出力サイズがとても大きくなることと、標準エラー出力と交互に出るので、execだとデッドロックが発生したり、Threadで対処したりいろいろ面倒くさかったのでメモ。

0 件のコメント:

コメントを投稿