Reassigns the "standard" error output stream.

package com.logicbig.example.system;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
public class SetErrExample {
public static void main(String... args) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(stream);
System.setErr(ps);
try {
int i = 1 / 0;
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("retrieving error from byte stream");
byte[] byes = stream.toByteArray();
String s = new String(byes);
System.out.printf("-- error -- %n%s%n", s);
}
}
Output
retrieving error from byte stream
-- error --
java.lang.ArithmeticException: / by zero
at com.logicbig.example.system.SetErrExample.main(SetErrExample.java:20)
at org.codehaus.mojo.exec.AbstractExecJavaBase.executeMainMethod(AbstractExecJavaBase.java:402)
at org.codehaus.mojo.exec.AbstractExecJavaBase.doExecClassLoader(AbstractExecJavaBase.java:377)
at org.codehaus.mojo.exec.AbstractExecJavaBase.lambda$execute$0(AbstractExecJavaBase.java:287)