Auch wenn OP nur über das spricht String[] args
, möchte ich ein vollständiges Beispiel für das gebenpublic static void main(String[] args)
.
Public
: ist ein Zugriffsmodifikator , der definiert, wer auf diese Methode zugreifen kann. Öffentlich bedeutet, dass jede Klasse auf diese Methode zugreifen kann (wenn andere Klassen auf diese Klasse zugreifen können).
Static
: ist ein Schlüsselwort, das die klassenbezogene Sache identifiziert. Dies bedeutet, dass die angegebene Methode oder Variable nicht instanzbezogen, sondern klassenbezogen ist. Sie können darauf zugreifen, ohne die Instanz einer Klasse zu erstellen.
Void
: wird verwendet, um den Rückgabetyp der Methode zu definieren. Es definiert, was die Methode zurückgeben kann. Void bedeutet, dass die Methode keinen Wert zurückgibt.
main
: ist der Name der Methode. Dieser Methodenname wird von JVM als Ausgangspunkt für eine Anwendung mit nur einer bestimmten Signatur gesucht.
String[] args
: ist der Parameter der Hauptmethode.
Wenn Sie sich den JDK-Quellcode ansehen (jdk-src \ j2se \ src \ share \ bin \ java.c):
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
...
{ /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
message = "Main method not public.";
messageDest = JNI_TRUE;
goto leave;
...
Sie können sehen, dass die Startmethode in Java benannt werden mussmain
und die spezifische Signatur haben musspublic static void main(String[] args)
Der Code sagt uns auch, dass dies public static void main(String[] args)
nicht behoben ist. Wenn Sie den Code in (jdk-src \ j2se \ src \ share \ bin \ java.c) in eine andere Signatur ändern, funktioniert dies, aber wenn Sie dies ändern, treten andere mögliche Probleme auf wegen der Java- Spezifikationen
Offtopic: Es ist 7 Jahre her, seit OP diese Frage gestellt hat. Ich vermute, dass OP jetzt seine eigene Frage beantworten kann.
args
nicht unbedingt benannt werden mussargs
(Sie können es benennen, was Sie wollen) - obwohl es am besten ist, die Konvention zu befolgen. Sie können auchString... args
von Zeit zu Zeit sehen, was gleichwertig ist.