ひでっぷの技術メモ

はてなダイアリーから移行しました

Runtime.exec()でLinuxのパイプ使用(追記)

以前Runtime.exec()を使用してのLinuxでのパイプ使用について書いたが、どうもRuntime.exec(String command)だとうまくパイプ使用ができないようだ。
試したのはgrepだけど、パイプ以降が無効になってるかのようにgrepせずにすべての結果を出してくる。
悩んだ挙句結局Runtime.exec(String commands)を使うと解決した。


×
Runtime.getRuntime().exec("/bin/sh -c ps -A | grep syslogd");



Stirng commands =
{"/bin/sh", "-c", "ps -A | grep ", "syslogd"};
Runtime.getRuntime().exec(commands);