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.