How do I redirect System.err msg on NT

As you probably already know, when running a standard alone java program, say myapp.class, if one wants to redirect the System.out.println message, one might do this on NT dos prompt:
java myapp > myout.txt
In this case, all messages from System.out.println that suppose to print on the screen are redirected to be written into myout.txt.
If your error messages are displayed using System.err.println, the same command does not save your message to the file redirected as above. Does anyone know how can I do some similar thing in the command line to redirect my error messages into a file?
Thanks for help.
Stan

to redirect standard error on nt:
java myapp 2> myout.txt

Similar Messages

  • How do I redirect System.err output in iPlanet 4.1?

    All,
    I've been trying for days to redirect System.err output from a Java program
    to a log file. I followed the instructions here:
    http://knowledgebase.iplanet.com/ikb/kb/articles/4790.html
    Unfortunately, nothing has been written to any of the log files (even though
    I have plenty of System.err.println()'s in my code).
    Anyone else get this to work correctly?
    Thanks in advance,
    --Bill                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi,
    What is the product web server or application server ? If it is application
    server then I'm very sure that this output will be seen in the kjs log file in
    Unix and in the command window in Windows NT/2K, only if you have allowed the
    process to interact with desktop. Please let me know if this answers your
    question for me to help you further on this.
    Regards
    Raj
    "news.uswest.net" wrote:
    All,
    I've been trying for days to redirect System.err output from a Java program
    to a log file. I followed the instructions here:
    http://knowledgebase.iplanet.com/ikb/kb/articles/4790.html
    Unfortunately, nothing has been written to any of the log files (even though
    I have plenty of System.err.println()'s in my code).
    Anyone else get this to work correctly?
    Thanks in advance,
    --Bill                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How redirect System.err ?

    Hi,
    I'm debbuging on device and I would like to change the System.err value to redirect its outputs.
    I have some log methods to write common outputs in a text file on the device, and I need to check the output of the mehtod Exception.printStackTrace().
    How can I redirect System.err ??
    Thanks in advance,

    Well, as a matter of fact, CLDC/MIDP specifications (this is CLDC and MIDP forum JFYI) do not provide means for application to get printStackTrace output anyhere else but System.err.
    You can not change that fact, no matter how you try. Oh and this is a verifiable fact - anyone can get mentioned specifications and check if it's true.
    I would also add that per my reading of above specifications, compliant device even "has a right" to simply swallow anything that goes to System.err - including the output of printStackTrace.
    I mean, specs allow devices where trying to get output of printStackTrace is the same as trying to get something from [ /dev/null|http://en.wikipedia.org/wiki//dev/null]. Oh and by the way my conclusion is, again, verifiable - that is, anyone can get the specs and check if there's a requirement for devices not to behave that way.
    Does that answer your question?

  • Exceptions .. redirecting System.err

    I've redirected System.err to a custom class that extends OutputStream.
    I have a couple of questions which someone in here might know the answer to:
    1. When I receive an exception write(byte b[], int off, int len) is called. The array of bytes is always 8192 long - padded with \x0000 at the end. Why?
    2. How do I know an exception has ended? I want to notify the user when it has ended (with a popup). But write() is called for each line, and flush() doesn't seem to be called at all.
    Best regards,
    Bjorn

    Depends what kind of a program you are writing. If you are doing a standalone application, you can always have a master try-catch block in the main() method that will catch Throwable. Nothing should make it past that.
    Now, if you are doing a servlet or EJB, you don't want to trap every exception because the container is supposed to receive and handle them for you (thread death, out of memory, etc.) If you have a front-controller pattern implemented, you can put a master try-catch block there and do something like the following:
    try {
    // implement cool functionality here
    catch (RuntimeException e) {
    // use code to retrieve stack trace
    throw e;
    catch (Exception e) {
    // use code to retrieve stack trace
    // handle exception in application-specific manner
    catch (Error e) {
    // use code to retrieve stack trace
    throw e;
    The cool "feature" about exceptions is that they propogate. So, if you don't have the appropriate catch block, it will move to the previous caller. Hence, you can have a master exception processor if either a) you re-throw exceptions on to be procsesed by the master exception processor or b) you don't handle the exception at all and let it propogate naturally.
    You also have a number of options so you don't have to rewrite 300 exception try-catch blocks. Subclass Exception, and for all your custom exceptions, put the functionality to dump or store the stack trace there. It will happen anytime your custom exception is instantiated.
    Lots of ways to skin a digital cat. However, the argument that you will have to change code to get new functionality is part and parcel of the beast. If you want to capture the stack trace and do something with it, code somewhere will have to change. Either use inheritance, delegation or the exception propogation mechanism inherent to Java to minimize your work.
    - Saish
    "My karma ran over your dogma." - Anon

  • Redirecting System.err on a mobile phone?

    Hi,
    Is there a way of redirecting System.err? Unfortunately, System.setErr does not exist in MIDP, so I haven't been able to write my own PrintStream to replace err.
    I need to know what the output of Exception.printStackTrace() is at a certain point. There is certainly a way of accessing System.err, otherwise it wouldn't be present in MIDP ... .
    Thanks!
    Stefan

    Hi
    J2ME Polish provides a logging framework, which offers different logging levels and the ability to view logging messages on real devices.
    Mihai

  • Redirecting System.err to a JOptionPane

    Hello,
    I tried to write a piece of code which shows all exceptions in a JOptionPane instead of the console. But I meet two difficulties:
    1. I don't know how to detect the line count of the error message (so that currently I have to display the optionPane for each error line, which is unacceptable).
    2. I receive more error messages than expected. The produced parse error gives 5 lines on a console, but here I receive 60.
    What's wrong?
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import javax.swing.*;
    class Redirecting extends JFrame {
      public Redirecting() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,300);
        JTextAreaOutputStream err= new JTextAreaOutputStream();
        System.setErr(new PrintStream(err));
        JButton b= new JButton("Produce error");
        b.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt) {
         System.out.println(Integer.parseInt("1"));
         System.out.println(Integer.parseInt("2"));
         System.out.println(Integer.parseInt("Error"));
        add(b, BorderLayout.SOUTH);
        setVisible(true);
      public static void main(String[] args) throws Exception {
        EventQueue.invokeLater(new Runnable() {
          public void run() {
         new Redirecting();
      class JTextAreaOutputStream extends OutputStream {
        int icnt=0;
        private JTextArea area;
        public JTextAreaOutputStream() {
          area= new JTextArea();
        public void flush() throws IOException {
          JOptionPane.showMessageDialog(Redirecting.this, area, "Error",
                                  JOptionPane.ERROR_MESSAGE);
    //      area.setText("");
        public void write(byte b[]) throws IOException {
          area.append(new String(b));
        public void write(byte b[], int off, int len) throws IOException {
          System.out.println(icnt++);
          String s = new String(b , off , len);
          area.append(s);
          flush(); // to make error lines visible
        public void write(int b) throws IOException {
          area.append(String.valueOf(b));
    }

    maybe this ?
          * recieving error for testing
          * @param e
         protected void bt_generateError_actionPerformed(ActionEvent e) {
              DateFormat fo = new SimpleDateFormat("mm.dd.yyyy");
              try {
                   // Here reciev parsing error
                   fo.parse("sacascsa");
              } catch (ParseException e1) {
                   String exception = Util.formateException(e1.getStackTrace());
                   // show error
                   Util.showException(frame, exception);
          * utilita
          * @author Dima
         public static class Util {
               * formateException formating error in way you want
               * @param stack
               * @return
              public static String formateException(StackTraceElement[] stack) {
                   String formatedException = "";
                   for (int i = 0; i < stack.length; i++) {
                        System.err.println(stack.getClassName() + ""
                                  + stack[i].getMethodName() + "" + stack[i].getClass()
                                  + " Line" + stack[i].getLineNumber());
                        formatedException = formatedException.concat(
                                  stack[i].getClassName()
                                  + "."
                                  + stack[i].getMethodName()
                                  + " "
                                  + stack[i].getClass()
                                  /** + " Line" + stack[i].getLineNumber() */
                                  + "\n"); // remove comment and recieve errors line
                                                 // numbers
                   return formatedException;
              * showException return JOptionPane with formatted error
              * @param com
              * @param exceptionText
              public static void showException(Component com, String exceptionText) {
                   JPanel canva = new JPanel();
                   canva.setMinimumSize(new Dimension(300, 200));
                   canva.setPreferredSize(new Dimension(300, 200));
                   JTextArea area = new JTextArea();
                   area.setText(exceptionText);
                   JScrollPane pan = new JScrollPane();
                   pan.getViewport().setView(area);
                   canva.setLayout(new BorderLayout());
                   canva.add(pan);
                   JOptionPane.showMessageDialog(com, canva, "Error Title",
                             JOptionPane.ERROR_MESSAGE);

  • Redirecting System.err to a TextArea

    Hi there !
    I want to redirect the output of System.err to a TextArea.
    System.err is everywhere in my project. Is there any simple way to just redirect the output of this err to some TextArea?
    Thanks in Advance
    Dexter

    See the API java.lang.System.setErr()You will then need to start a thread to read from the PrintStream and put the
    output in your text area.
    - ajay

  • Capture System.err

    how do i capture System.err so i can do with it as i will?

    on an actual phone, you dont, you use some kind of Logger, or you can use the netbeans+bluetooth+sonyericsson tools to view the system.out/system.err outputs on a live device

  • System.out and System.err  How to get to show up in log

    Does anyone know if there is anyway to get System.out and System.err
    messages to appear in the log?
    Trying to build and debug a JSP project is a complete nightmare when the
    remote developers cannot see System.out or System.err messages from helper
    classes.
    Platform= Windows NT 4.0
    Weblogic running as a Service
    Thanks in advance!

    Write a wrapper class to redirect the std out to what ever stream you want.
    HTH
    Saman

  • How does javaw (WinXP) threats System.err and System.out?

    Hi, I just faced a problem which is most likely caused by the blocking of System.err.
    So I'm interested in the default handling of theses streams by javaw.
    I would except that they point to something like "/dev/null" (compared to Unix), but the behavior is different.
    I'm sure about this, cause redirecting these streams had fixed my problem.
    (see http://forum.java.sun.com/thread.jspa?messageID=9516593)
    Thanks a lot in advance.
    Greetings Michael
    The entry from the registry:
    "C:\Programme\Java\jre1.6.0\bin\javaw.exe" -jar "%1" %*"

    Bumping.

  • How to capture System.err and System.out in a method?

    Is there some way to capture everything that is sent to System.err or System.out and have it instead go to e.g. a method as a String?
    The reason I want to do is this: I am invoking some method from a class that sends output to System.err and System.out but while that method is run, I want everything that goes to System.out or System.err to instead go to a String buffer or a Swing Scroll Pane.
    What is the easiest way to do this?

    I want everything that goes to System.out or System.err to instead go to a String buffer or a Swing Scroll Pane.Then maybe you should be searching (and then posting) in the Swing forum. Thats where I've seen this question asked and answered many times in the past.

  • Redirecting System.out to a JTextArea

    How can I redirect the System.out Stream into a JTextArea?
    I found the method System.setOut(PrintStream out) but I don't know
    how to get the PrintStream of my TextArea.

    I don't know if this is the most efficient way but it provides an example of using Pipes:
    import java.io.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class TextAreaStream extends JTextArea implements Runnable{
         private static final PipedOutputStream _pipeOut = new PipedOutputStream();
         static{
                   System.setOut( new PrintStream(_pipeOut) );
         private InputStream _pipeIn;
    private byte[] buffer = new byte[256];
         public TextAreaStream(){
              this(1,10);
         public TextAreaStream(int numRows, int numCols){
              super(numRows, numCols);
              Thread t = new Thread(this);
              t.setDaemon(true);
              t.start();
              try{
              pipeIn =  new BufferedInputStream(new PipedInputStream(pipeOut));
              catch(IOException e){
                   System.err.println("Error creating pipe: "+e);
         public void run(){
              while(true){
                   try{
                        //blocks at read
                        int bytesRead = _pipeIn.read(buffer);
                        append(new String(buffer,0,bytesRead));
                   catch(IOException e){
                        System.err.println(e);
         public static void main(String[] args){
              JFrame f = new JFrame();
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              JTextArea text = new TextAreaStream();
              text.setBorder(BorderFactory.createTitledBorder("System.out"));
              f.getContentPane().add(text);
              //Add an input component
              JPanel north = new JPanel(new FlowLayout(FlowLayout.LEFT));
              final JTextField field = new JTextField(25);
              north.add(field);
              north.add(new JLabel("Add text, press Enter"));
              f.getContentPane().add(north, BorderLayout.NORTH);
              field.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent e){
                        System.out.println(field.getText());
                        field.setText("");
    f.setSize(600, 400);
              f.show();
    }

  • Redirecting System.out() output to a JTextArea control

    I want to be able to redirect System.out() and System.err() messages to a JTextArea control:
    I know how to redirect output to a file as follows:
    FileOutputStream fos =
    new FileOutputStream(filename, true);
    PrintStream ps = new PrintStream(fos, true);
    System.setOut(ps);
    System.setErr(ps);
    How can I set it up so that I can recognise when messages have been to System.out() with a view to displaying the message within the JTextArea?
    I guess I need to set it up so that the JTextArea control acts as an Observer. The bit I'm having difficulty with is figuring out how I can automatically determine when information has been written to System.out()?
    Hopefully I'm explaining my issue in enough detail and clarity.
    thanks
    - Garry

    I would suggest you set up a separate thread to monitor System.out. Use a PipedOutputStream and redirect System.out to that, then connect that to a PipedInputStream that your other thread is continually waiting to read. Each time that thread reads a line, it should append the line to the JTextArea, using SwingUtilities.invokeLater.
    This is just a rough outline of something that might work. Hope it helps.

  • Temporarily routing System.out and System.err to a String

    Hi everybody,
    Does anyone know of a way to temporarily route System.out and System.err directly from the console into a String, then set it back to its default to the console? I know how to reroute to a text area:
    TextAreaOutputStream taos = new TextAreaOutputStream(yourTextArea);
    PrintStream ps = new PrintStream(taos);
    System.setErr(ps);
    System.setOut(ps);But it doesn't seem like there is either a way to reroute to a String or a way to switch back to the default routing afterward. Can anyone give me some advice on how to do this, please?
    Thanks,
    Jezzica85

    Too late to the party?
    import java.io.*;
    public class Redirection {
        public static void main(String[] args) {
            System.out.println("To console");
            PrintStream old = System.out;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            PrintStream ps = new PrintStream(baos);
            System.setOut(ps);
            System.out.println("To memory");
            System.out.print("No 'ln'");
            //System.out.flush(); //needed?
            System.setOut(old);
            System.out.println("To console again?");
            System.out.println("earlier I wrote...");
            byte[] data = baos.toByteArray();
            String message = new String(data);
            System.out.println(message);
    }

  • System.err

    what is the perpose of 'err' reference variable in System class. and how to use it?

    System.out leads the output to the standard output stream (normally mapped to the console screen). System.err leads the output to the standard error stream (and, by default to the console, as well). The idea behind having these two is that the standard output should be used for regular program output, and standard error should be used for error messages.
    Both the streams can be redirected to different destinations. If it is desired to redirect the output to an output file and error messages to a different log file, than on UNIX it can be done as follows:
    java MyClass > output.log 2>error.log
    This causes the regular output (using System.out) to be stored in output.log and error messages (using System.err) to be stored in error.log.
    If you have put error messages in your program, but you don�t want to see them, the technique given below can be used to do it:
    Java MyClass 2> /null
    This redirects the System.err messages to /null, so no error messages appear on the screen, but the normal program output can still be seen.
    Once again, google is your friend!!
    regards,
    Manuel Leiria

Maybe you are looking for