禁用System.err

时间:2011-05-09 11:59:54

标签: java

有没有办法设置流System.err,以便忽略写入它的所有内容? (即丢弃未输出)

4 个答案:

答案 0 :(得分:37)

System.setErr(new PrintStream(new OutputStream() {
    public void write(int b) {
    }
}));

答案 1 :(得分:18)

您可以使用System.setErr()为其提供一个不执行任何操作的PrintStream。

请参阅@ dogbane的代码示例。

答案 2 :(得分:4)

只需将Error设置为dommy实现:

System.setErr(new PrintStream(new OutputStream() {
            @Override
            public void write(int arg0) throws IOException {
                // keep empty
            }
        }));

您需要获得特殊许可才能这样做。

RuntimePermission("setIO")

答案 3 :(得分:2)

您可以将错误的流重定向到/dev/null

OutputStream output = new FileOutputStream("/dev/null");
PrintStream nullOut = new PrintStream(output);
System.setErr(nullOut);