Traditionsproblem: Exception in thread 'main'

Hallo!

Wollte auf meinem PC ein Programm zum Laufen bringen, dass bereits auf einem anderen problemlos funktioniert hat. Also JDK erfolgreich installiert und auch den Classpath geändert. Dann in der DOS-Eingabeaufforderung zur Datei hinnavigiert und auch erfolgreich kompiliert!
Anschließend habe ich „java Calc1“ eingegeben (die Datei heißt Calc1.java), was der PC dann aber ausspuckt ist eben jene Fehlermeldung:

Exception in thread „main“ java.lang.ArrayIndexOutOfBoundsException: 0
at Calc1.main

Offenbar haben sehr viele blutige Anfänger wie mich diese Problem, aber keiner der Ratschläge hat bis jetzt geholfen.

Ich lass den Quellcode wegen der Würze in der Kürze weg, da das Programm schon auf einem anderen Rechner funktioniert hat und ich wohl nur irgendwas falsch oder gar nicht eingegeben habe. Vielleicht sollte ich noch hinzufügen, dass ich XP benutze :wink:

Wäre sehr glücklich, wenn mir jemand zeigen könnte, wie ich diese Java-Datei ausführen kann :smile:

Gruß, Justin

Hallo!

Exception in thread „main“
java.lang.ArrayIndexOutOfBoundsException: 0
at Calc1.main

Offenbar haben sehr viele blutige Anfänger wie mich diese
Problem, aber keiner der Ratschläge hat bis jetzt geholfen.

Ich lass den Quellcode wegen der Würze in der Kürze weg, da

Da die Fehlermeldung die Zeile konkret benennt, wäre es vielleicht doch gut, wenigstens die ersten paar Zeilen mal zu posten. Bei Zeile 5 kann das aber nur das Argumenten-Array sein, das ja leer ist und auf das trotzdem versucht wird, zuzugreifen.

Gruß, Jan

Achso, tut mir Leid. Dann poste ich doch lieber am besten das komplette Programm:

public class Calc1 {

public static void main(String[] args){
int s=Integer.parseInt(args[0]);
int r=0;

for(int a=0; a

Hallo!

public class Calc1 {

public static void main(String[] args){
int s=Integer.parseInt(args[0]);

Genau. Du greifst auf das 1. Element von args zu. Nur, es gibt kein 1. Element. args ist leer.

Jan

Ah gut der Fehler ist gefunden, lag wohl doch am Code. Hat das vielleicht mit irgendwelchen libraries zu tun, die auf dem anderen Rechner sind? Oder wie könnte das Programm sonst funktionieren, bzw. warum hat es schonmal funktioniert?

Gruß, Justin

Hallo!

anderen Rechner sind? Oder wie könnte das Programm sonst
funktionieren, bzw. warum hat es schonmal funktioniert?

Wenn das Programm bei Aufruf ein Argument erwartet, muss du eben eins angeben. Du musst doch wissen, worum es bei dem Programm geht, oder?

Jan

1 Like

Ah gut der Fehler ist gefunden, lag wohl doch am Code. Hat das
vielleicht mit irgendwelchen libraries zu tun, die auf dem
anderen Rechner sind? Oder wie könnte das Programm sonst
funktionieren, bzw. warum hat es schonmal funktioniert?

Weil es wie schon gesagt eine Eingabe erwartet also vermutlich eine Zahl, um die sich die Berechnung drehen soll.
Mal was anderes…Dir ist schon klar, daß Du aus der *.java Datei erst mit dem Javacompiler eine *.class Datei erstellen mußt…?

Ja klar, vielen Dank. Manchmal hat man halt n kleines Brett vorm Kopf und manchmal halt n rießen großes :wink: Aber der heilige Gral wurde gefunden und ich bin dir sehr dankbar.

Greetz