Exception in thread "main" java.lang.NoClassDefFou

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Hallo Leute

heute ist bei mir am PC zum ersten mal ein Problem aufgetreten mit dem ich nicht wirklich etwas anfangen kann und auch diverse Entrys in anderen Foren haben mich leider noch nicht zu einem Ergebnis gebracht. Immer, wenn ich eine Java-Datei kompiliert habe und die Class dann ausführen will kommt folgende Fehlermeldung:


Exception in thread "main" java.lang.NoClassDefFoundError: Programmname


Ich arbeite mit Windows XP Pro SP2, nutze zur Zeit noch die DOS-Konsole zum Kompilieren und Starten der Programme und habe Java Version 1.5.0_09 installiert.

Nach der damaligen Installation vor rund 3 Monaten habe ich die Umgebungsvariable unter Path und dann C:\Programme\Java\jdk1.5.0_09\bin gesetzt. Meine Classpath ist unter C:\Programme\Java\jre1.5.0_09\lib\ext\QTJava.zip eingetragen und bei beiden ist zu sagen, dass die Ordner und Datein der Pfade auch existieren.

Nur wieso kommt diese Fehlermeldung??? 3 Monate hat alles funktioniert und ich hab seitdem schon weit über 50 Programme gemacht und habe seit dem letzten mal wo es noch funktioniert hat nichts an meinem PC geschweige denn Java verändert.

Ich bin noch recht neu in Java, falls jemand eine Lösung parat hat wär eine genaue Beschreibung also sehr schön...

Danke schonmal im Vorraus an euch und ein schönes Weihnachtsfest
Ciao
Sascha
 
Automatische Updates von JRE aktiv?
Wie sehen die Umgebungsvariablen heute (PATH und JAVA_HOME) aus?
Was gibt
java -version
aus?
 
Noch was. Fremdbibliotheken nach JRE##\lib\ext zu kopieren ist
keine gute Idee, selbst wenn es oft in Installationsanleitungen
irgendwelcher Programme "empfohlen" wird.
Erstelle am besten ein Unterverzeichnis lib im Verzeichnis deiner
Anwendung und kopiere dort alles rein, was die Anwendung
verwendet.
z.B. mit einer Batchdatei
Code:
@echo off
if "%1"=="" goto begin

set cp=%cp%%1;
goto end

:begin

set cp=deineanwendung.jar;
for %%f in (.\lib\*.jar) do call %0 %%f
for %%f in (.\lib\*.zip) do call %0 %%f
%JAVA_HOME%\bin\java.exe -client -showversion -cp %cp% package.deiner.anwendung.Main
set cp=

:end
oder schreibe die Abhängigkeiten in die Manifestdatei deiner Anwendung.
 
Wo kann ich nachsehen, ob die automatischen Updates bei JRE aktiviert sind? Das wäre natürlich ne Möglichkeit...

Die PATH Variable sieht immer noch, wie oben beschrieben aus. JAVA_HOME weiß ich nicht, was du damit meinst, weil ich solch eine nicht finden kann.

-version gibt folgendes aus (oben kann man auch nochmal die Fehlermeldung am Bsp. von HalloWelt sehen

konsole.JPG
 
Hallo!
Ich habe ein ähnliches Problem, habe ClassPath und Path auch entsprechend gesetzt, bis vor kurzem haben die Apps noch funktioniert- jetzt nicht mehr. Allerdings ist bei mir der Fehleroutput deutlich länger- siehe:
javaerr.jpg


Was ist da das Problem?

MfG
Fabian
 
Was kommt dabei?

Code:
java -cp .; HalloWelt

Wenn es funktioniert, dann fehlt bei dir .; in der Umgebungsvariable CLASSPATH.
Es sucht dann keine .class Dateien im aktuellen Verzeichnis.
 
Anonymous hat gesagt.:
Hallo!
Ich habe ein ähnliches Problem, habe ClassPath und Path auch entsprechend gesetzt, bis vor kurzem haben die Apps noch funktioniert- jetzt nicht mehr. Allerdings ist bei mir der Fehleroutput deutlich länger- siehe:
javaerr.jpg


Was ist da das Problem?

MfG
Fabian
Du musst beim Aufruf den Namen der Klasse so schreiben, wie er in der Quellcodedatei
steht bzw. die Gross-/Kleinschreibung beachten.

java CHalloWelt
statt
java challowelt
 
1000x Danke Leute, ihr habt mein Weihnachten gerettet 😀

Habe einfach in meiner CLASSPATH aus

C:\Programme\Java\jre1.5.0_09\lib\ext\QTJava.zip

nun

C:\Programme\Java\jre1.5.0_09\lib\ext\QTJava.zip.;

gemacht und alles funktioniert, wie eh und jeh. Wundert mich nur, warum dieses Problem so urplötzlich aus dem Nichts aufgetaucht ist. Evtl. durch automatische Updates? Da würd ich gern auf meine Frage von vorhin zurück kommen

Wo kann ich nachsehen, ob die automatischen Updates bei JRE aktiviert sind?

Ciao
 
Hupps, hab ich wohl seit meinen ersten Gehversuchen vergessen- thx 🙂
 
DaSaeschOnAir hat gesagt.:
Wo kann ich nachsehen, ob die automatischen Updates bei JRE aktiviert sind?
In der Systemsteuerung

Start -> Einstellungen -> Systemsteuerung -> Java -> Aktualisierung
 
Danke! Habs jetzt ausgestellt, anders kann ich mir die Veränderung bei den Variablen auch nich wirklich erklären, als ein Update was vor wohl vor kurzem durchgeführt worden sein muss....
 
DaSaeschOnAir hat gesagt.:
Danke! Habs jetzt ausgestellt, anders kann ich mir die Veränderung bei den Variablen auch nich wirklich erklären, als ein Update was vor wohl vor kurzem durchgeführt worden sein muss....
Dann wäre die Version beim Aufruf von java.exe eine andere. Wie auch immer...

Schöne Weihnachtstage. :wink:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben