You can overload the main()
method, but only public static void main(String[] args)
will be used when your class is launched by the JVM. For example:
public class Test {
public static void main(String[] args) {
System.out.println("main(String[] args)");
}
public static void main(String arg1) {
System.out.println("main(String arg1)");
}
public static void main(String arg1, String arg2) {
System.out.println("main(String arg1, String arg2)");
}
}
That will always print main(String[] args)
when you run java Test ...
from the command line, even if you specify one or two command-line arguments.
You can call the main()
method yourself from code, of course - at which point the normal overloading rules will be applied.
EDIT: Note that you can use a varargs signature, as that's equivalent from a JVM standpoint:
public static void main(String... args)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…