Parameter für die main-Methode

Wang

Bekanntes Mitglied
Hallo! 🙂
Im Vorlesungsskript bin ich auf eine Folie gestoßen, die ich nicht ganz verstehe:

Beispiel für einen Zugriff der main-Methode auf das Parameterarray:

Java:
public class Gruss
{
   public static void gruessen (String gruss)
   {
      System.out.println (gruss);
   }

   public static void main (String[] args)
   {
      gruessen(args[0]);
   }
}

Dadurch ist eine vielfältigere Verwendung möglich:

  • java Gruss "Hello, World!"
  • java Gruss "Hallo, Welt!"
  • java Gruss "Servus!"


Der Compiler zeigt mir sofort die Fehlermeldung
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at HelloWorld.main(HelloWorld.java:10)
an.
Deshalb meine zwei Fragen:
1. Was möchte diese Folie aus der Vorlesung vermitteln?
2. Warum meldet mir der Compiler einen Fehler?

Vielen Dank für Eure Mühe! 😉
 
1. Die Folie möchte dir vermitteln, dass man beim Programm aufruf arguments setzen kann, die dann in der main Methode verfügbar sind im args Array.
2. Der Fehler entsteht, weil du beim ausführen des Programms kein Argument lieferst.
 
1. Was möchte diese Folie aus der Vorlesung vermitteln?
Dass man beim Aufruf von Java Programmen Parameter übergeben kann.
2. Warum meldet mir der Compiler einen Fehler?
Der Kompilere meldet Dir keinen Fehler, sondern die JVM. Denn der Code ist komplilierbar.
Das Problem ist nur, dass Du bei Programmaufruf keinen Parameter mit übergibst. (s. letzte 3 Zeilen des Zitats)
 
Der Kompilere meldet Dir keinen Fehler, sondern die JVM. Denn der Code ist komplilierbar.

Danke, natürlich war das nicht der Compiler, sondern die JVM. Ich glaube ich sitze heute einfach schon zu lange davor...

Das Problem ist nur, dass Du bei Programmaufruf keinen Parameter mit übergibst. (s. letzte 3 Zeilen des Zitats)

Wie genau ist das gemeint?

Ich gehe so vor:
- Eingabe von
Code:
java HelloWorld
- anschließende Eingabe von
Code:
java Gruss "Hello, World!"

Aber es kommt immer eine Fehlermeldung...
 
Die Fehlermeldung oben passt aber nur auf den Aufruf von
Code:
 java HelloWorld

Ja.

Möglicherweise habe ich aber auch etwas falsch verstanden... Ich habe es so verstanden, dass ich durch die Eingabe beispielsweise von
Code:
java Gruss "Servus!"
das Wort "Servus!" auf dem Bildschirm ausgegeben bekomme.

Habe ich da etwas falsch verstanden oder ist meine Befehlseingabe falsch?
 
>Habe ich da etwas falsch verstanden oder ist meine Befehlseingabe falsch?

ja. Deine Klasse heisst HelloWorld und nicht Guss.
"java MakeCoffe sugar nomilk" mach ja auch keinen Kaffe.
Benamse deine Klasse mit Gruss und kompilier sie, dann klappts auch damit
 
Danke, jetzt funktionert es natürlich... :autsch:

Ich glaube ich breche das Lernen an dieser Stelle für heute besser ab...
 

Neue Themen


Zurück
Oben