# Namen-Begrüßung Kommandozeilenparameter



## Carlos Valderra (25. Jun 2012)

Wie funktioniert das mit dem  Kommandozeilenparameter? Muss man den extra ins Programm schreiben oder ist der schon im Terminal integriert?



> Schreiben Sie ein Programm namens Hello.java, welches per Kommandozeilenparameter einen
> oder mehrere Namen übergeben bekommt und jeweils eine individuelle Begrüung ausgibt.
> Falls kein Kommandozeilenparameter übergeben wurde, so soll das Programm eine entsprechende
> Fehlermeldung ausgeben.


----------



## Gast2 (25. Jun 2012)

Die Kommandozeilenparameter werden in der main Methode übergeben:


```
public static void main(String[] args) { ... }
```
Startest du dein Programm so:

```
java DeinProg hallo welt
```
würde folgendes in args stehen:
args[0] = "hallo", args[1] = "welt"


----------



## njans (25. Jun 2012)

```
public static void main(String[] args){}
```
args sind hier die Übergebenen Parameter. 

Diese werden normalerweise übergeben, wenn man die Klasse aufruft :
Z.B. wenn man die Klasse über die Konsole startet:
>Java MeineTestKlasse "Wert1" "Wert2"

Damit hättest du dann in args den Inhalt "Wert1" und "Wert2"

*Edit* Zuspät^^


----------



## Carlos Valderra (25. Jun 2012)

EikeB hat gesagt.:


> Die Kommandozeilenparameter werden in der main Methode übergeben:
> 
> 
> ```
> ...



Nach dem Motto Name1 begrüße ich mit "hallo", Name2 mit "welt", Name3 wieder mit "hallo",...?


----------



## Templarthelast (26. Jun 2012)

Testen ob args[0] existiert sonst Fehlermeldung ausgeben. 

Dann solange args_ existiert "Hallo args" ausgeben. 

so schwer ist das doch nicht._


----------



## njans (26. Jun 2012)

Er soll ja nicht jedes mal die gleiche Begrüßung ausgeben  

```
List<String> begruessungsListe = new ArrayList<String>();
begruessungsListe .add("Hallo");
begruessungsListe .add("Willkommen");
.... // noch mehr einfügen

Random random = new Random(0);
for(String name : args)
{
  System.out.println(begruessungsListe.get(random.nextInt(begruessungsListe.size()))" " + name);
}
```

So könnte man da auch machen.


----------



## Templarthelast (27. Jun 2012)

njans hat gesagt.:


> Er soll ja nicht jedes mal die gleiche Begrüßung ausgeben



Ich denke es geht hier eher, darum für eine beliebige Anzahl von Anfangsargumenten. Alle diese Argumente persönlich zu grüßen. z.B.


```
grussprogramm Peter Hans Klaus

>Hallo Peter
>Hallo Hans
>Hallo Klaus
```


----------



## njans (27. Jun 2012)

> und jeweils eine individuelle Begrüßung ausgibt



Klingt für mich ja mehr nach eine neue für jeden.


----------



## Carlos Valderra (3. Jul 2012)

Danke für die Hilfe, hier übrigens die Lösung:


```
public class Hello{
   public static void main (String[] args){
      if (args.length > 0) {
         for (int i=0; i<args.length; i++) {
            System.out.println("Hello " + args[i] + "!");
         }
      } else {
         System.err.println("Kommandozeilenparameter fehlt!");
         System.exit(1);
      }
   }
}
```


----------

