String args[] are the arguments that you pass to the program:
java Prog args args1 args2
args are then the arguments, put in the args[] array like so
args[0] = args
args[1] = args1
args[2] = args2
run() is only used in threads, if i am understanding you right.
static has a meaning too long to explain in a single post. You might want to read the java
tutorials or get yourself a good book.
edit: you always need to have a main method. It is the entry point to your program. The class that has your main method is the class that you do
and it run. Otherwise you get an error.