A Java entry-point class has a main
method with the following signature and modifiers:
public static void main(String[] args)
Sidenote: because of how arrays work, it can also be
(String args[])
When the java
command starts the virtual machine, it loads the specified entry-point classes and tries to find main
. If successful, the arguments from command line are converted to Java String
objects and assembled into an array. If main
is invoked like this, the array will not be null
and won't contain any null
entries.
A valid entry-point class method must do the following:
main
(case-sensitive)public
and static
void
return typeString[]
. The argument must be present and no more than one argument is allowed.It is conventional to declare the class as public
but this not strictly necessary. From Java 5 onward, the main
method's argument type may be a String
varargs instead of a string array. main
can optionally throw exceptions, and its parameter can be named anything, but conventionally it is args
.
From Java 8 onwards the java
command can also directly launch a JavaFX application. JavaFX is documented in the JavaFX tag, but a JavaFX entry-point must do the following:
javafx.application.Application
public
and not abstract
public
no-args constructor