ClassNotFoundError, aber class-Datei vorhanden
fjh
- java
Hallo ForumlerInnen,
ich habe heute mehrere Stunden mit einem leidigen Problem verbracht und hoffe es kann mir jemand von Euch einen Tip geben.
Ich mußte vor kurzem auf der Arbeit meinen Rechner komplett neu installieren. Gut, drauf ist nun Win NT SP5 und einige Anwendungen. Heute habe ich den JDK 1.2.2-001 installiert. Alles kein Problem, CLASSPATH gesetzt und los gehts, dachte ich. Habe dann einige Java-Files compiliert, was ohne Probleme (keine Fehler, keine Warnungen) vor sich ging. Dann über die Kommandozeile die Programme aufgerufen und immer kam der Fehler ClassNotFoundException mit der Angabe des Klassennamens. Die class-Dateien sind aber alle vorhanden und auch im richtigen Verzeichnis. Mittlerweile bin ich schon wieder bei HelloWorld-Programmen gelandet, aber nix geht. Die gleiche Prozedur habe ich dann - um mich zu überzeugen, das ich nicht generell was falsch mache - auf einem anderen Rechner wiederholt und da lief es problemlos.
Kann sich jemand vorstellen, woran das liegen könnte. Evtl. hilft mir auch schon ein Hinweis, in welchen Fällen, außer fehlende class-Datei sonst noch der obige Fehler gemeldet wird.
Bin für jeden Tip dankbar
Gruß
Franz
PS: Könnt ihr mir für die Mark ne Rechnung ausstellen, damit ich das als Weiterbildung absetzen kann? ;-)
hi Franz,
diese Meldung "class not found" kenne ich bisher nur von Browser-Aufrufen. Du beschreibst es aber fuer Aufrufe von der Konsole aus .... Wenn vom Browser sowas gemeldet wird, und die Dateien, so wie du sagst, vorhanden sind, fehlt meist irgendein Parameter oder ist falsch gesetzt. Oder das Apllet verlangt einen Parameter und bekommt ihn nicht. Oder irgendwas an den Pfadangaben entweder im System (autoexec.bat) oder im Browser ist nicht korrekt. Manchmal hilft es bei Applets, die "code base"-Anweisung zu kontrollieren, wobei du darauf achten musst, ob dein Applet "Code Base" oder "code base" lesen will.
PS: Könnt ihr mir für die Mark ne Rechnung ausstellen, damit ich das als Weiterbildung absetzen kann? ;-)
das waer ja noch schoener. Gib einfach einen link zum Forum hier an, das duerfte ueberezeugen ;-)
Christoph S.
Hallo Christoph,
haste schon mal versucht,
direkt aus deinem "class-Verzeichnis" heraus, dein Programm zu starten???
Geht das auch nicht? Sagt er noch was, ausser "class..."?
Verwendest du eine package-Anweisung?
Gruss Monika
Hallo Monika,
haste schon mal versucht,
direkt aus deinem "class-Verzeichnis" heraus, dein Programm zu starten???
jo
Geht das auch nicht? Sagt er noch was, ausser "class..."?
Ne nix. Immer nur:
Exception in thread "main" java.lang.NoClassDefFoundError: <Name der class-Datei>
Verwendest du eine package-Anweisung?
Ne
Es ist zum verzweifeln, selbst mit nem Popels-Hello-World-Programm nix zu machen. Habe ja irgendwie Win in Verdacht. Verrückt: Zum Glück habe ich gerade keinen Druck. Stell Dir mal vor du sagst deinem Chief: Tja, alles Prima nur Java krieg ich nicht zum Laufen, sonst hätt ich schon 50 Beans programmiert ;-)
Ich bin schon drauf und dran, Win NT nochmal neu aufzusetzen.
Ciao
Franz
hi ;-)
Es ist zum verzweifeln, selbst mit nem Popels-Hello-World-Programm nix zu machen. Habe ja irgendwie Win in Verdacht.
Der Verdacht ist wahrscheinlich gerechtfertigt.Ich weiss zwar nicht genau ueber NT Bescheid, aber mein Win9x konnte auch ein paar Tage lang ueberhaupt kein Java mehr, als ich den IE5.0 das erstemal aufgespielt habe. Da war die Loesung so, dass ich den IE komplett geloescht und die registry manuell von _saemtlichen_ Java-Eintraegen gesaeubert habe, danach IE neu aufgespielt, und dann gings.
Allerdings: das bezog sich ausschliesslich auf Applets, die vom Browser dargestellt wreden sollten. Konsolenaufrufe waren bei mir nie problematisch.
Ich bin schon drauf und dran, Win NT nochmal neu aufzusetzen.
Das ist zwar ultima ratio, aber vorher solltest du vielleicht die registry gruendlich durchkucken, ob irgendwas verkehrt eingetragen ist.
Christoph S.
Hallo Franz,
das Problem hängt sicher mit Deinem Classpath zusammen, unter NT ist
das eh so ne Sache. EIn paar Tips aus eigener Erfahrung:
1. Umgebungsvariablen kannst DU nur mit lokalen Administratorrechten ändern, und am besten nur über Systemsteuerung->System
ein Set Aufruf an der Konsole bringt nix, gibt aber keine Fehlermeldung.
2. Wenn Du den Classpath so geändert hast, must Du das Konsolenfenster schliessen und dann neu öffnen.
3. Wenn Du .jar, .zip oder .cab Dateien verwendest, musst DU jede einzeln in den Classpath hängen (ist echt ätzend).
4. Überprüfe mit dem Befehl "set" an der Eingabeaufforderung wie die Umgebungsvariablen für die aktuelle Konsole gesetzt sind.
5. Schau den Classpath nochmal genau an, ich hatte mal den fehler: .D:\java;C:\Java statt: .;D:\Java;C:\Java
Damit müsste es eigentlich gehen, eine NT-Neuinstallation wird Dich nur viel Zeit kosten und wahrscheinlich nichts bringen ;-)
Gruss
Marko
Hallo Marko,
das Problem hängt sicher mit Deinem Classpath zusammen, unter NT ist
vielen Dank für deine Tips.
Bin mittlerweile auch soweit, dass es irgendwie am CLASSPATH liegen muss, da ich es nun schaffe (nach Neuinstallation des JDK) zumindest aus dem bin-Verzeichnis des JDK heraus die Programme zu starten.
Tja, aber auch Deine vielen Hinweise habe ich bereits beachtet gehabt. Naja, heut ist erstmal Feiertag. Morgen gehts fröhlich weiter, aber ich bin echt ratlos.
Immerhin habt ihr mich überzeugt, nix Neuinstallation von NT :)
Hab da noch son Verdacht, dass ich vielleicht Anführungszeichen um den Pfad für das derzeitige directory gesetzt habe, also "." statt . . Mit dieser Hoffnung rette ich mich jetzt über dewn Tag ;-)
Sähe mir jedenfalls ähnlich, so ein doofer Fehler.
Und jetz geh ich erstmal innen Park, bei dem schönen Berliner Wetter, wa...
Tschüß und dank auch an die andern Helfer
Franz