This is done to provide greater flexibility for the language at runtime. You can pass in parameters to the program which are stored in the String[] args variable.
A good way to introduce this concept is examining the notion of a Windows Shortcut. If you check the properties of your Internet Explorer icon, note the Target:
It should look something like the following:
"C:\program files\internet explorer\iexplorer.exe"
Now, I can add parameters to the end of the target to tell the icon to not only load the exe, but pass in string parameters as well!
"C:\program files\internet explorer\iexplorer.exe" www.coderanch.com
So, now this icon could launch the iexplorer.exe and pass it the coderanch website address to load immediately.
In this same way, executable
java applications can have parameters passed in, via any interface that supports parameter passing.
The executable jar file would have to have parameters attached to it for this example to work correctly but hopefully you see the benefits. This is especially nice when your application needs to launch another application and pass specific parameters for a desire effect.
//Note: ExecutionObject is black-boxed in the example, assume it is programmed to allow a given exe file to be executed via its String path in the O/S dir.
hope this makes sense.