EMZETT.
Login

void main (Programm-Einstiegspunkt)

Kurz: Die spezielle Methode/Funktion, mit deren Ausführung ein Programm startet — der “Startpunkt”, den das Betriebssystem oder die Laufzeitumgebung beim Programmstart automatisch aufruft.

Genauer: In vielen Sprachen (Java, C, C++) heißt dieser Einstiegspunkt main und hat eine feste, vorgeschriebene Signatur, die die Laufzeitumgebung erkennt und automatisch aufruft — von dort aus wird der Rest des Programms angestoßen. Häufig nimmt main ein Array von Kommandozeilen-Argumenten entgegen, mit denen das Programm beim Start zusätzliche Parameter erhalten kann.

Im Detail

Ein Programm besteht aus vielen Funktionen/Methoden — die Laufzeitumgebung muss also wissen, WELCHE davon zuerst aufgerufen werden soll, wenn das Programm startet. Statt das dem Zufall oder der Reihenfolge im Quellcode zu überlassen, verlangen die meisten Sprachen eine Methode mit einem festen, erkennbaren Namen und einer festen Signatur:

public static void main(String[] args) {
    // Ausführung startet hier
}

Jeder Teil dieser Signatur hat einen Grund: public macht die Methode von außen (von der Laufzeitumgebung) aufrufbar, static erlaubt den Aufruf, OHNE vorher ein Objekt der Klasse erzeugen zu müssen (die Laufzeitumgebung kann main aufrufen, bevor überhaupt irgendetwas vom Programm “existiert”), void bedeutet, dass die Methode keinen Rückgabewert an den Aufrufer liefert (das Programmende und ein evtl. Fehlercode laufen über einen separaten Mechanismus), und String[] args nimmt die beim Programmstart übergebenen Kommandozeilen-Argumente entgegen.

java MeinProgramm hallo welt
# args = ["hallo", "welt"] innerhalb der main-Methode

Nicht alle Sprachen verlangen eine explizit benannte main-Funktion. Python zum Beispiel führt beim Programmstart einfach den Code auf oberster Ebene der Datei von oben nach unten aus — es gibt keinen erzwungenen Einstiegspunkt-Namen, auch wenn sich die Konvention if __name__ == "__main__": etabliert hat, um Code zu markieren, der nur beim direkten Ausführen der Datei laufen soll (nicht beim Importieren als Modul in ein anderes Programm).

Der Rückgabewert des Programms selbst (nicht der main-Methode) — der sogenannte “Exit Code” — ist ein separates Konzept: 0 signalisiert dem Betriebssystem üblicherweise “erfolgreich beendet”, jeder andere Wert deutet auf einen Fehler hin. Das ist wichtig für Skripte und Automatisierung, die anhand des Exit Codes entscheiden, ob ein vorheriger Schritt erfolgreich war, bevor der nächste startet.

Siehe auch: void, User Input