Statische Methoden einer Klasse können aufgerufen werden, ohne dass ein Objekt der Klasse erzeugt werden muss. Die main-Methode ist per Definition der Einstiegspunkt ins Programm. Das heißt: Die virtuelle Maschine beginnt an dieser Stelle mit der Ausführung des Programms.
Wäre die main-Methode nicht statisch, müsste zuerst ein Objekt der Klasse, in der sich die main-Methode befindet, erzeugt werden. Beim Erzeugen des Objekts würde erst ein Konstruktor und dann die main-Methode aufgerufen werden. Damit wäre nicht die main-Methode der Einstiegspunkt ins Programm, sondern der Konstruktor.
Daraus folgt, dass die main-Methode statisch sein muss, um den Einstiegspunkt in das Programm beschreiben zu können.