java.lang.NoClassDefFoundError
hagi
- java
Hallo,
ich kann das Problem einfach nicht lösen :(
Egal welche Java-Klasse ich mit javac in MSDOS öffne bekomme ich feolgende Meldung:
java.lang.NoClassDefFoundError: myClass
myClass steht für den Namen der aktuellen Klasse.
Weiss jemand eine Lösung?
Danke,
hagi
Hallo,
hast du den Ratschlag befolgt, mal die Classpath-Variable aus dem
path zu nehmen? Wenn ja, dann mach mal folgendes.
Kopiere diesen Code hier raus und füge ihn in einen Editor deiner Wahl ein:
-----------------------------------------------------------------------
class Test
{
public static void main(String[] args) {
System.out.println("Dies ist ein Test");
}
}
-----------------------------------------------------------------------
Speichere die Datei unter dem Namen "Test.java" (in genau dieser
Groß/Kleinschreibung). Dann mach eine Konsole auf und wechsle in das
Verzeichnis, in das du die Datei gerade gespeichert hast.
Führe dort jetzt folgenden Befehl aus (wieder auf Groß/Kleinschreibung achten):
"javac Test.java"
Nachdem du die Java-Datei damit kompiliert hast, führe sie folgendermaßen
aus:
"java Test"
(ohne ".class" oder dergleichen)
Jetzt sollte "Dies ist ein Test" auf dem Bildschirm erscheinen.
Wenn nicht, dann paste mal genau das hier rein, was du auf der Konsole
eingegeben hast und was genau(!) als Fehlermeldung zurückkam.
Gruß
Slyh
PS: Der Java-"Interpreter" heißt übrigens "java.exe", nicht "javac.exe". Der letztgenannte ist der Compiler.
Hallo Slyh,
ich habe deine Ratschläge befolgt und habe am Ende folgenden Fehler in der Konsole bekommen:
Exception in thread "main" java.lang.NoClassDefFoundError: Test
Mit "set" habe ich die classpath geprüft, sie steht auf CLASSPATH="C:\Program Files\JavaSoft\JRE\1.3.0_01\lib\ext\QTJava.zip"
Dieser Pfad exisitert aber auf meinem Rechner nicht, d.h. der Pfad ist bis "JRE" ok, den Rest "\1.3.0_01\lib\ext\QTJava.zip" gibt es nicht.
Danke,
hagi
Hallo,
hast du den Ratschlag befolgt, mal die Classpath-Variable aus dem
path zu nehmen? Wenn ja, dann mach mal folgendes.
Kopiere diesen Code hier raus und füge ihn in einen Editor deiner Wahl ein:
class Test
{
public static void main(String[] args) {
System.out.println("Dies ist ein Test");
}
}
Speichere die Datei unter dem Namen "Test.java" (in genau dieser
Groß/Kleinschreibung). Dann mach eine Konsole auf und wechsle in das
Verzeichnis, in das du die Datei gerade gespeichert hast.
Führe dort jetzt folgenden Befehl aus (wieder auf Groß/Kleinschreibung achten):
"javac Test.java"
Nachdem du die Java-Datei damit kompiliert hast, führe sie folgendermaßen
aus:
"java Test"
(ohne ".class" oder dergleichen)
Jetzt sollte "Dies ist ein Test" auf dem Bildschirm erscheinen.
Wenn nicht, dann paste mal genau das hier rein, was du auf der Konsole
eingegeben hast und was genau(!) als Fehlermeldung zurückkam.
Gruß
Slyh
PS: Der Java-"Interpreter" heißt übrigens "java.exe", nicht "javac.exe". Der letztgenannte ist der Compiler.
Hallo,
Mit "set" habe ich die classpath geprüft, sie steht auf CLASSPATH="C:\Program Files\JavaSoft\JRE\1.3.0_01\lib\ext\QTJava.zip"
Ooh, jetzt weiß ich wo der Hund evtl. begraben liegt.
Schmeiß mal diese c:\program files.... aus dem ClassPath raus (brauchst
du eh nicht) und füge stattdessen nur einen einzelnen Punkt ein.
Also z.B. so:
"set classpath=."
Und schon müßte es gehen... endlich... hoffentlich. *g*
Gruß
Slyh
Hoi,
Ooh, jetzt weiß ich wo der Hund evtl. begraben liegt.
Das haette ich dir auch sofort sagen koennen ;-))
du eh nicht) und füge stattdessen nur einen einzelnen Punkt ein.
Also z.B. so:
"set classpath=."
Und schon müßte es gehen... endlich... hoffentlich. *g*
Du hast die Erklaerung vergessen. In der Umgebungs-Variable CLASSPATH
stehen die Pfade drin, in der der javac und java selber nach den
Klassen suchen. Da kann ein beliebiges Verzeichnis oder auch eine beliebige .jar- oder .zip-File drin stehen, und aus diesen
Verzeichnissen/Jar-/Zip-Files kann man dann die enthaltenen
Klassen/Packages per "import" importieren. Solltest du irgendwann also
mal zusaetzliche Klassen benoetigen (z. B. den Xerces-J-Parser), dann
brauchst du nur den Classpath auf die jar-Files oder auf das
Verzeichnis zu setzen.
ACK.
Gruesse,
CK