# Mehrere Main Methoden



## Gast (9. Dez 2008)

Hallo,

ich bin JAVA Anfänger und versuche gerade ein erstes Projekt (in NetBeans) zu realisieren.

Nun stellt sich mir die Frage op man in einem Projekt mehrere Main Methoden haben kann?
z.B. So vielleicht:

_Packages_
 |
_ org_
 |
 |-----_Test1_---------_*Class1* in Test1_ mit *Main Methode*
 |         
 |
 |-----_Test2_---------_*Class2* in Test2_ mit *anderer Main Methode*


Ich möchte nämlich dass man diese dann z.B. einzeln so aufrufen kann: "java Class1 _args_" und "java Class2 _args_"

Vielen Dank für jede hilfreiche Antwort.

Schöne Grüsse.


----------



## maki (9. Dez 2008)

> Nun stellt sich mir die Frage op man in einem Projekt mehrere Main Methoden haben kann?



Ja.

Ob das sinnvoll ist kann man von hieraus nicht sagen.

Wozu denn?


----------



## Guest (9. Dez 2008)

Es handelt sich um zwei (Main) Methoden die als Argument entweder etwas von einer anderen Methode übergeben bekommt sollen oder die man selbstständig aufrufen können soll mit z.B. einem Filename als Argument.


----------



## maki (9. Dez 2008)

Verstehe immer noch nicht warum das mit einer Main Methode nicht gehen sollte, aber pro öffentlicher Klasse kannst du eine main Methode haben.


----------



## Guest (9. Dez 2008)

Es soll so sein damit ich mit "java Class1 _args_" Class1 ausführen kann und mit "java Class2 _args_" Class2.

Mit nur einer mein methode könnte ich dass doch nicht oder? Dann könnte ich nur die Klasse mit der Main Methode ausführen oder? "java ClassMain _args_" und könnte nicht Class1 und Class2 einzeln aufrufen oder?


----------



## Gelöschtes Mitglied 9001 (9. Dez 2008)

Das müßte so gehen. Wenn Du dann allerdings mal vorhast, das ganze in eine Jar-Datei zu packen, geht es nicht mehr, weil man im Manifest der Jar-Datei eine Hauptklasse festlegen muß und dann beim Starten des Programmes die Klasse nicht mehr angibt, sondern die jar-Datei.

Dann wäre es aber immer noch möglich, in der main-Methode der Hauptklasse mittels if-Abfrage das erste Argument auszuwerten und von da aus weiterzuverzweigen und die entsprechenden (main)-Methoden der Klassen aufzurufen und ihnen die restlichen Argumente zu übergeben (entweder ein neues Array erzeugen, welches nur die restlichen Argumente enthält oder die anderen main-Methoden ignorieren das erste Argument).
Je nach dem, was Du für ein Projekt hat, verliert man dadurch etwas an Flexibilität, weil die Verzweigung ja dann fest ist.

Eventuell ist es möglich, dass das Programm selbständig herausfindet, welche Klassen eine main-Methode haben; dadurch müßte die Verzweigung nicht mehr fest verdrahtet sein.
Ob und wie das geht, weiß ich allerdings nicht.


----------

