# In main-Methode Parameter übergeben



## ThommyTom (13. Sep 2013)

Hallo liebe Java-Gemeinde,
ich steige derzeit von BlueJ auf Eclipse um und habe eine Schwierigkeit:
Ich habe in Blue J ein Progrämmchen (bestehend aus einer Klasse mit einer Methode), dass die Wurzel berechnet (nach einem bestimmten Algorithmus, das ist aber unwichtig). Ich übergebe also einen Paramter.

Ich möchte nun dieses Projekt auch in eclipse "kopieren", doch eclipse hat immer eine main-Methode und ich weiß nicht, wie ich dort den Wert (=Radikant) übergeben kann.

Danke für eure Hilfe 
Thomas


----------



## parabool (13. Sep 2013)

-Du erstellst in Eclipse eine neue Klasse und lässt dir automatisch die main-Funktion
erzeugen (mit den Assistenten)

-In der main erzeugst du eine Instanz deiner Klasse und
rufst dann deine Methode mit parameter auf. 
Also so:

```
public class Test
{
public static void main(String [] args) 
{
int param = 16;
DeineKlasse dk=new DeineKlasse();
dk.berechneWurzel(param);
}
}
```


----------



## ThommyTom (13. Sep 2013)

Ok, soweit kann ich folgen, danke 
Sieht für mich aber im moment so aus, als ob ich mich da auf einen Wert festlegen muss. Wäre doch schön, dass Programm würde starten und mich dann nach nen Wert fragen (wie in BlueJ eben..)


----------



## geqoo (13. Sep 2013)

Dann musst du einen BufferedReader beim Aufruf deiner Main-Methode verwenden (Programmstart). Damit kannst du etwas einlesen.


```
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Geben Sie eine Zahl ein: ");
String eingabe = null;
try {
	eingabe = console.readLine();
} catch (IOException e) {
	e.printStackTrace();
}
```
Dann kannst du mit der Variable eingabe deine Klasse aufrufen (über den Konstruktor übergeben). Muss man dann aber beim Start manuell eingeben.


In deinem Falle die bessere Lösung:
String [] args bedeutet, dass man soviele Argumente übergeben kann, wie man will. Alle Argumente werden durch diese Notation automatisch als String interpretiert (Trennzeichen, sog. Delimiter ist das Leerzeichen).
Jetzt nimmst du dir einfach das erste Argument mittels args[0] und rufst damit deine Funktion auf. Da das in deinem Fall aber ein Integer für den Aufruf sein dürfte, müsstest du das Ganze noch parsen:


```
Integer wert;

try {
	wert = Integer.parseInt(args[0]);
} catch (Exception e) {
	e.printStackTrace();
}

funktion(wert);
```


----------

