我正在尝试运行一个忽略其输出的程序,但是当其输出很大时,它似乎挂起了。我的代码如下:
Process p = Runtime.getRuntime().exec("program");
p.getOutputStream().write(input.getBytes());
p.getOutputStream().flush();
p.getOutputStream().close();
p.waitFor();
忽略输出的最佳方法是什么?
我试图将输出重定向到/ dev / null,但是得到了Java IOException'Broke pipe'。
最佳答案
你试过了吗:
Process p = Runtime.getRuntime().exec("program >/dev/null 2>&1");
?
我记得以前必须在Java中做类似的事情,但是我可能没有以相同的方式调用该过程。
编辑:我刚刚测试此代码,它成功完成。
class a
{
public static void main(String[] args) throws Exception
{
Process p = Runtime.getRuntime().exec("cat a.java >/dev/null 2>&1");
p.getOutputStream().write(123123);
p.getOutputStream().flush();
p.getOutputStream().close();
p.waitFor();
}
}