title: Why does Java main() method accept an array of String args?
body: <p>Since its possibly one of the most widely used methods of the Java language, why does it have to accept an array of Strings and doesn't work without it? For example, I could always live with:</p>
  
  <pre><code>public static void main() {}
  </code></pre>
  
  <p>over</p>
  
  <pre><code>public static void main(String[] args) {}
  </code></pre>
  
  <p>Is there a higher purpose to this than just being able to accept command-line arguments, especially since a vast majority of Java programs are GUI driven and don't need to receive args through command line?</p>