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
If you have put error messages in your program, but you don