Java tutorial
import java.io.OutputStream; import java.io.PrintStream; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.ScrollPaneConstants; public class StdErrOutWindows { JTextArea outArea = new JTextArea(20, 50), errArea = new JTextArea(20, 50);; public StdErrOutWindows() { JScrollPane pain = new JScrollPane(outArea); JFrame outFrame = new JFrame("out"); outFrame.getContentPane().add(pain); outFrame.setVisible(true); pain = new JScrollPane(errArea); JFrame errFrame = new JFrame("err"); errFrame.getContentPane().add(pain); errFrame.setLocation(errFrame.getLocation().x + 20, errFrame.getLocation().y + 20); errFrame.setVisible(true); System.setOut(new PrintStream(new JTextAreaOutputStream(outArea))); System.setErr(new PrintStream(new JTextAreaOutputStream(errArea))); } public static void main(String[] args) { new StdErrOutWindows(); System.out.println("test to out"); try { throw new Exception("Test exception"); } catch (Exception e) { e.printStackTrace(); } } public class JTextAreaOutputStream extends OutputStream { JTextArea ta; public JTextAreaOutputStream(JTextArea t) { super(); ta = t; } public void write(int i) { ta.append(Character.toString((char) i)); } public void write(char[] buf, int off, int len) { String s = new String(buf, off, len); ta.append(s); } } }