# Main Methode Variablen übergeben



## iB0T (25. Aug 2012)

Hallo ich habe mal ne Frag kann man der Main Methode Variablen übergeben?

SO wie hier:


```
public static void main(String var_Vorname, String var_Zuname , String var_Alter , String var_Wohnort , String pw1 , String pw2 ,String zero, int select) {

}

oder geht das nicht? Wenn es nicht geht wie kann ich folgenden Fehler behebn?

	public static void main(String var_Vorname, String var_Zuname , String var_Alter , String var_Wohnort , String pw1 , String pw2 ,String zero, int select){
		JOptionPane.showMessageDialog(null, "Wilkommen beim iB0T Daten Service!");
		JOptionPane.showMessageDialog(null, "Version Alpha 1.0.0");
		
		
		selection(zero);
		register(select);
		
		checkRegister(var_Vorname,var_Zuname,var_Alter,var_Wohnort,pw1,pw2);
		
	}
Fehlercode:

Exception in thread "main" java.lang.NoSuchMethodError: main
```

Ich bin dabei die Basics nocheinmal zu vertiefen komme aber an diesem Punkt nicht weiter?! Suff hat auch nicht das was ich wissen wollte geliefert!;(;(


----------



## mjdv (25. Aug 2012)

Nein das geht nicht. Du hast nur String[] args.

Was willst du machen?


----------



## Final_Striker (25. Aug 2012)

Du kannst der main-Methode ein Array von Strings übergeben.


----------



## pl4gu33 (25. Aug 2012)

so sieht JAVA die main- Methode als ganz normale Methode an 

darum sagt er dir, dass er keine "richtige" main- Methode finden kann .... du kannst aber bei der normalen Main- Methode deinem Programm "Start"- Parameter mitgeben, welche dann in dem String[] args Array enthalten sind


----------



## gst (25. Aug 2012)

Alter Schwede. Wenn man deine Fragen so liest graust einem schon echt vor diesem "inteligeneten" [sic!] Datenabsicherungsystem, sofern das überhaupt je was wird.


----------



## 2AndAHalfBit (25. Aug 2012)

Hallo, 

ich mache mal den "Summerizer", damit es noch etwas einfacher für Dich wird. 

Es gibt in jedem Programm eine Methode, die als Startpunkt aufgerufen wird. In Java ist das die Main methode. Du kannst dieser Main-Methode nicht willkürlich Parameter hinzufügen. Wie auch - die VM wüsste ja nichts von den Parametern. Geht also nicht. 

Aber wenn Du Dir die Methodensignatur der Main-Methode in Java (und auch in anderen Sprachen) anschaust, wirst Du sehen, dass es bereits einen Parameter gibt. 

[tipp]
public static void main (*String args[]*) {}
[/tipp]

Jede Main methode bekommt also ein Array übergeben, welches Du füllen kannst, wenn Du deine Javaklasse aufrufst (also das Programm). In args[0] steht dann der erste Parameter, in args[1] der zweite und so weiter....

Was du allerdings tust ist etwas anderes: Du überlädst die main-Methode....
Und da es keine mit der richtigen Signatur gibt, wird auch keine gefunden. 

1.) Warum tust du das?
2.) Was hast Du überhaupt vor?


----------



## Pentalon (26. Aug 2012)

Hi iBot

Du kannst einem Programm in der Commandline Parameter übergeben.
Wenn Du also z.B. in der Windows Eingabeaufforderung Dein Programm mit dem Namen "meinprog" startest kannst Du diesem Programm Parameter übergeben.

c:\> meinprog param1 param2 param3 paramx

Die Anzahl der Parameter kannst Du per args.length abfragen.


```
public class meinprog {

	public static void main(String[] args) {
		System.out.println("Die Anzahl der übergebenen Parameter ist: "+args.length);
		
		for(int a = 0; a < args.length; a++)
			System.out.println(args[a]);
	}
	
}
```

Wenn Du mit Eclipse arbeitest, kannst Du die Parameter unter "Run / Run configurations... / Arguments / Program Arguments eingeben.

Pentalon


----------

