imagine you invoke your java program on the commandline:
# java someClass report.txt out.txt
someClass----->your compiled source file minus the .java report.txt---->[0] of the String[] args out.txt------->[1] of the String[] args
the arguments are the missing pieces of the program. if you use them in your code and don't present them on the commandline you'll get an ArrayIndexOutOfBoundsException. take care [ April 15, 2008: Message edited by: f. nikita thomas ]
It is a rule in Java that you have to allow to send Array of String object to main, whether you will pass parameters at run time or not. Even you don't have any need to send parameters through command line you must write main method like
public static void main(String[] a)
you can use any identifier name in the place of a.