【Java】gzipやwgetなどの外部プロセスを実行する方法
Javaで外部プロセスを実行する方法についてご紹介いたします。
例えばgzipコマンドやwget、curlコマンド、nkfコマンド等の外部プロセスを実行する方法になります。
これらの外部プロセスをJavaから利用する際の注意点としましては、実装方法次第でお見合い(デッドロック)状態となってしまう可能性があることです。
外部プロセスの標準出力、標準エラーがバッファサイズを超えてしまう可能性があり、そのような状況になると外部プロセスは標準出力への出力ができず、待ち状態となってしまいます。
また、Javaプログラム上で外部プロセスの終了を待つようにしていると、外部プロセスはバッファが空くのを待っており、Javaプログラム側はプロセス終了を待っているという状態になってしまう可能性があります。
それらの状況を回避することを考慮した実装方法をご紹介いたします。