2011-05-09 12 views
14

ストリームSystem.errに書き込まれたすべてが無視されるように設定する方法はありますか? (廃棄されなかった場合)System.errを無効にする

答えて

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

私は別の方法を見つけました:System.err.close(); – elou

18

System.setErr()を使用して、何もしないPrintStreamを渡すことができます。

コードの@ dogbaneの例を参照してください。

2

あなたはdommy実装にだけ設定エラー/dev/null

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

しかし、これは* nix固有です。 – asgs

+1

注:Windowsでは、 "/ dev/null"ではなく "NUL:"を使用してください。 – dogbane

+0

/dev/nullはWindowsには存在しません(ただし、NULを使用することもできます)。 –

4

にERRストリームをリダイレクトすることができます:

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

あなたはそれを行うための特別な許可を持っている必要があります。

RuntimePermission("setIO") 
関連する問題