我正在尝试运行一个忽略其输出的程序,但是当其输出很大时,它似乎挂起了。我的代码如下:

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();
    }
}

09-30 12:12