プロセスの出力 (Git.exe
正確には) を取得し、それを String オブジェクトに変換したいと考えています。以前は、コードがブロックされることがありました。次に、プロセスErrorStream
に何らかの出力があり、それを手動でキャプチャする必要があるためであることがわかりました(これには興味がありません)。コードを次のように変更しました。
public static String runProcess(String executable, String parameter) {
try {
String path = String.format("%s %s", executable, parameter);
Process pr = Runtime.getRuntime().exec(path);
// ignore errors
StringWriter errors = new StringWriter();
IOUtils.copy(pr.getErrorStream(), errors);
StringWriter writer = new StringWriter();
IOUtils.copy(pr.getInputStream(), writer);
pr.waitFor();
return writer.toString();
} catch (Exception e) {
return null;
}
}
現在はほとんど問題なく動作していますが、次の行で再びブロックされることがあります
IOUtils.copy(pr.getErrorStream(), errors);
。
git.exe
ブロックをヒットせずにから出力を取得する方法はありますか? ありがとう。