title: legal main method signature in java
body: <pre><code>class NewClass{
      public static void main(String a){
          System.out.print(&quot;Hello&quot;);
      }
  }
  </code></pre>
  <p>When I'm trying to execute above code, then it shows an error: <strong>main method not found</strong>. When I changed the signature to</p>
  <pre><code>public static void main(String... a)
  </code></pre>
  <p>or</p>
  <pre><code>public static void main(String a[])
  </code></pre>
  <p>Then it works. My question is how many different ways we can write legal main method signature? And what does the <code>String...</code> version mean?</p>