Exception in thread 'main'

Von: , Frage gestellt am So, 11. Nov 2001

Moin, ich hab mir mal den JBuilder5 von Borland installiert und bekomme nicht mal ein "Hello World"-Programm zum Laufen. Der JBuilder installiert automatisch die jdk-Version 1.3.0_02 mit. Wenn ich einfach nur entwas als Konsolenanwendung starten lassen will, schmeíßt er mir immer die Fehlermeldung "Exception in thread 'main' java.lang.NoClassDefFoundError" aus. Woran liegts? Ich schreibe wirklich nur beispielsweise

public class Bla {
public static void main(String[] args) {
System.out.println("Hans Meiser");
}
}

Compiliert auch ohn zu meckern, bloß bei der Ausführung haperts...

Muß ich irgendwas anderes einbinden oder warum funzt das nicht? Meine alten Programme laufen auch alle nicht mehr, also woran könnte das liegen?

danke,

Björn

9 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Exception in thread 'main'

    Hallo, Moin, ich hab mir mal den JBuilder5 von Borland installiert
    und bekomme nicht mal ein "Hello World"-Programm zum Laufen.
    Der JBuilder installiert automatisch die jdk-Version 1.3.0_02
    mit. Wenn ich einfach nur entwas als Konsolenanwendung starten
    lassen will, schmeíßt er mir immer die Fehlermeldung
    "Exception in thread 'main' java.lang.NoClassDefFoundError"
    aus. Woran liegts? Ich schreibe wirklich nur beispielsweise

    public class Bla {
    public static void main(String[] args) {
    System.out.println("Hans Meiser");
    }
    }
    Daran liegts wohl nicht.
    Wie sieht der Programmaufruf aus? Sollte in diesem Fall "java Bla" sein (also ohne ".class").

    Cu Rene

    • Antwort von nach 2 Stunden 0 hilfreich
      Re^2: Exception in thread 'main'

      Hi, der Programmaufruf ist java Klassenname (ohne .class). Ich hab echt keine Ahnung, woran das liegen könnte. Ein Ansatz wäre, dass ich unter 2000 arbeite und den Pfad zur java.exe bzw. auch zur javac.exe manuell als PATH-Variable eingetragen habe. Wäre schade, wenn ich auf den JBuilder verzichten müßte...

      Björn

      • Antwort von nach 9 Stunden 0 hilfreich
        Re^3: Exception in thread 'main'

        tja, also bei mir klappt das wunnebar...
        hallo burn! ;) [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  2. Antwort von nach 14 Stunden 0 hilfreich
    Re: Exception in thread 'main'

    Wenn ich einfach nur entwas als Konsolenanwendung starten
    lassen will, schmeíßt er mir immer die Fehlermeldung
    "Exception in thread 'main' java.lang.NoClassDefFoundError"
    aus. Woran liegts? Ich schreibe wirklich nur beispielsweise
    Der Fehler bedeudete, dass die VM eine Klasse nicht gefunden hat, in diesem Fall schon die Startklasse Bla.

    Also musst du dafür sorgen, dass selbiges .class-File in einem Verzeichnis liegt das wiederum im CLASSPATH steht.

    Hab aber keine Ahnung wo man das beim JBuilder einstellt ...

    Grüße, Robert

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Exception in thread 'main'

      im jbuilder kann man den CLASSPATH nicht direkt setzen, sondern muss ihn durch einbinden von biblotheken in den projektproperties aendern, d.h. menu projekt-> projekteigenschaften-> benoetigte biblotheken-> hinzufuegen. dort sollte man dann die entsprechende dateien in biblotheken zusammenfassen (es natuerlich auch moeglich alles in einer zu machen, was dann aber nicht sehr uebersichtlich ist).

      der jan [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  3. Antwort von nach 20 Stunden 0 hilfreich
    Re: Exception in thread 'main'

    Hallo!

    Wenn Du es von der Konsole startest und nicht in dem Verzeichnis
    bist, in dem die Klasse ist, solltest Du den Classpath mit
    angeben, etwa so

    c:\>java -cp c:/myjava Bla
    

    wobei myjava die Klasse Bla enthaelt.
    Startest Du direkt in myjava, dann gilt
    c:\myjava>java Bla
    


    Gruss
    Patrick

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Exception in thread 'main'

      moin,

      danke erstmal für die schnelle antwort. ich hab da mal ein paar verständnisfragen: was genau muß ich in den CLASSPATH denn überhaupt reinschreiben? ist das ein pfad zum einem .jar oder wie kann ich mir das vorstellen? unter win2k kann ich doch direkt in den umgebungsvariablen den classpath angeben, aber wenn ich nicht genau weiß, welche datei bzw. welches verzeichnis ich dort angeben muß, bin ich ein wenig aufgeschmissen, weils ja mehr als genug .jar's gibt,

      danke,

      björn

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: Exception in thread 'main'

        Hallo,
        eigentlich braucht das jdk 1.3 sofern es korrekt installiert ist, keinen Classpath mehr (für die Standardklassen jedenfalls), da er aus dem Startverzeichnis der VM generiert wird.
        Früher zeigte er auf das lib-Unterverzeichnis der jeweiligen Installation.

        Cu Rene

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Exception in thread 'main'

          jo, funzt jetzt.

          ist anscheinend wirklich ein weitverbreitetes problem (auch in den sun-foren diverse male vertreten). ich habs gelöst, indem ich die classpath-variable folgendermaßen gesetzt habe, vielleicht hilft es ja jemandem...

          C:\jbuilder5\jdk1.3\lib\;C:\jbuilder5\jdk1.3\lib\rt.tar;.

          das . ist denke ich nicht unwichtig, schadet jedenfalls nicht =)

          Björn

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!