Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo
Ich bin ein absoluter JAVA-Anfänger und bekomme ständig folgende Meldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at meinPaket.Beispiel1.main(Beispiel1.java:10)
Mir ist absolut nicht klar, was da falsch ist. ???:L
package meinPaket;
public class Beispiel1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = Integer.parseInt(args[0]);
System.out.println("Bitte a eingeben:");
int b = Integer.parseInt(args[1]);
System.out.println("Bitte b eingeben:");
while(a!=b)
if(a>b)
a=a-b;
else
b=b-a;
System.out.println(a);
}
[/B]-Tags zu schreiben:[/SIZE] [noparse][code=Java]hier Java Code einfügen
[/noparse]
2. Das Problem wird sein, dass du deinem Programm beim starten zu wenig Parameter übergibst. Aus dem Grund prüft man immer die länge des übergebenen Arrays.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at meinPaket.Beispiel1.main(Beispiel1.java:10)
Java:
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
System.out.println("Bitte a eingeben:");
int b = Integer.parseInt(args[1]);
System.out.println("Bitte b eingeben:");
while(a!=b)
if(a>b)
a=a-b;
else
b=b-a;
System.out.println(a);
}
}
Das nächste mal bitte Code in den JAVA-TAGS angeben!!! Siehe rote Schrift vor dem Posten!
Zu deinem Problem. Du willst in deinem Beispiel die Argumente auslesen, die man übergeben kann durch die Main-Methode, aber du hast dort keine Argumente, die du übergibst, wodurch das Array keinen Inhalt hat und du seine Grenze, halt nichts, mit einem ArrayIndexOutOfBoundsException übertrittst!
Du müsstest es auch anderst angehen, was du vorhast. Du brauchst zuerst eine Scanner-Klasse und die passenden Methoden zum Auslesen, aber bevor du dich da ran traust schau dir lieber mal das hier an: Java ist auch eine Insel[/code]
ja wie schon gesagt, du ließt die dem programm übergebenen argumente aus.
run as -> run configurations
Da wirds dann schon eine config mit deiner main Klasse geben, im reiter Arguments, bei Programm Arguments schreibst du dann mal 2 5 rein...
und mach bitte saubere klammern um deine while, for und if
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Bitte a eingeben:");
int a = scanner.nextInt();
System.out.println("Bitte b eingeben:");
int b = scanner.nextInt();
while(a!=b) {
if(a>b) {
a=a-b;
} else {
b=b-a;
}
}
System.out.println(a);
}
So sehe dein Code richtig aus. Ich empfehle dir das von mir gepostete Openbook "Java ist auch eine Insel" anzuschauen. Da kannst du einfach und gut Java lernen. Dein Ansatz ist auch in dem Sinne falsch, da du halt eine Eingabe VOR dem Programmstart bzw MIT dem Programmstart haben willst... Die gibst du ihm nicht!