# Parameter an main(String[] args) übergeben



## Gast2 (14. Nov 2011)

Moin!

Wie übergibt man den Parameter in eine klassische main-Funktion?

```
public static void main(String[] args) {...}
```

Probiert habe ich:

```
String blub = "übergeben";
NeueKlasse test = new NeueKlasse(blub);
```

oder 


```
String blub = "übergeben";
NeueKlasse test = new NeueKlasse();
test. (und unter autovervollständigen geschaut);
```

alles mit und ohne "[]" versucht...

Habs nicht rausfinden können.
Wäre dankbar für Hilfe!
Frank


----------



## Asgar13 (14. Nov 2011)

```
java TestProgramm Parameter1 Parameter2 ...
```

EDIT: Wird in der cmd/shell eingetippt. Wobei TestProgramm deine Klasse ist und die Parameter dahinter die Sachen sind, die an die String[] args übergeben werden.

Dadurch hätte dann args[0] den Wert Parameter1 und args[1] den Wert Parameter2


----------



## Gossi (14. Nov 2011)

frankmehlhop hat gesagt.:


> Probiert habe ich:
> 
> ```
> String blub = "übergeben";
> ...



Das was du dort versuchst, ist der Aufruf eines Konstruktors.
Den gibt man so an:


```
public class NeueKlasse {

    public NeueKlasse(String s) {
         System.out.println("Ich bin ein Konstruktor, danke für: " + s);
    }

}
```

Blödes Beispiel, aber an die main kannst du nur Parameter übergeben wie Asgar gezeigt hat.


----------



## langhaar! (14. Nov 2011)

frankmehlhop hat gesagt.:


> Probiert habe ich:
> 
> ```
> String blub = "übergeben";
> ...



Dein Problem ist nicht die Parameterübergabe, sondern der grundsätzliche Ablauf beim Start eines Java Programms bzw. die Funktionsweise der main Methode. Die main Methode wird nicht beim Instanziieren einer beliebigen Klasse aufgerufen.


----------



## faetzminator (14. Nov 2011)

Wie von Asgar13 geschrieben, sind das die Programmargumente. Du kannst aber eine main auch selbst aufrufen. Das ging so:

```
EineKlasse.main(new String[] {"einArg", "einZweites"});
```
Es gibt aber inzwischen Varargs, somit kann man [c]main(String... args)[/c] an Stelle von [c]main(String[] args)[/c] schreiben und diese Methode dann auch mit [c]EineKlasse.main("einArg", "einZweites");[/c] aufrufen. Mehr zu Varargs findest du hier: Galileo Computing :: Java ist auch eine Insel - 3 Klassen und Objekte


----------



## Gast2 (14. Nov 2011)

Aus Euren Antworten schließe ich, dass das Übergeben von Parametern an die main nicht wirklich Sinn macht?!

Ich bin über ein Beispielprogramm auf dieses Thema gekommen.
Wen's interessiert:
Reading XML Documents with JDOM

Herzliche Grüße!


----------



## langhaar! (14. Nov 2011)

Natürlich macht das Übergeben von Parametern an die main Methode Sinn. Allerdings hatten deine Programme nichts damit zu tun.


----------

