Knut Meinke: helloworld programm geht nicht *s*

Hallo,

ich will anfangen mich mit java zu beschäftigen. also hab ich die jdk1.2.2  runtergeladen und installiert. Dann wollte ich ein per past+copy erstelltes helloworld programm ausführen.
zuerst javac helloworld.java -> funktionier dann java heloworld.class -> funktioniert nicht
die fehlermeldung:

java.lang.NoClassDefFoundError: D:\java\work\erste_schritte\HelloWorld/class
Exception in thread "main" Prozeß abgeschlossen mit Exit-Code 1

woran liegts?
nebenbei versuchte ich noch eine ide (jdesigner) zu installieren. Bei der instelation meldete die sich und meinte das keine class datein im lib verzeichnuns unter jdk zu finden sei.
stimmt auch da ist nur datein mit *.jar endungen.

bin ich nur ein armer dau oder ist da was grundlegenderes schiefgelaufen?

cu knut

  1. Hi Knut!

    Ich hab ja nun wirklich keine Ahnung von Java, aber wenn ich diese Fehlermeldung sehe

    java.lang.NoClassDefFoundError: D:\java\work\erste_schritte\HelloWorld/class
    Exception in thread "main" Prozeß abgeschlossen mit Exit-Code 1

    dann waere doch das erste, was ich tue, das .class im Aufruf wegzulassen, oder? Also einfach
      java HelloWorld

    Calocybe

  2. Hi Knut,
    irgendwann will ich mich auch mal mit Java beschäftigen. Deshalb nur nachfolgend ein kleiner Ausszug aus dem Buch "In 21 Tagen Java" von Laura Lemay- vielleicht hilft Dir daß ja weiter.

    Gruß
    Thomas

    Class-Not-Found-Fehler beheben
    Java-Programme werden mit dem JDK kompiliert, indem Sie den Java-Compiler javac mit dem Namen der Quelldatei als Argument aufrufen. Wenn Sie sich z.B. in demselben Ordner wie die Quelldatei HalloDan.java befinden würden, könnten Sie diese mit dem folgenden Kommando kompilieren:

    javac HelloWorld.java

    Wenn Sie beim Versuch, eine Quelldatei mit dem Java-Compiler zu kompilieren, eine Fehlermeldung Class not found erhalten, dann sollten Sie als erstes überprüfen, ob Sie den Namen unter Beachtung der Groß-Klein-Schreibung richtig geschrieben haben.

    Stellen Sie sicher, daß Sie sich in dem Ordner befinden, der die Quelldatei enthält, die Sie zu kompilieren versuchen. Außerdem sollten Sie den Dateinamen doppelt überprüfen.

    Wenn der Name der Quelldatei korrekt ist und es keine Fehler in dem Java-Quellcode selbst gibt, dann hat Ihr System Probleme damit, die Datei tools.jar zu finden. Diese Datei beinhaltet alle Java-Klassen, die zur erfolgreichen Kompilierung und Ausführung von Java-1.2-Programmen benötigt werden.

    Das JDK sucht nach der Datei tools.jar auf zwei Arten. Zunächst verwendet es die CLASSPATH-Einstellung des Systems (sofern eine gesetzt wurde). Als nächstes sucht es nach der Datei java.exe und verwendet den Speicherort dieser Datei, um herauszufinden, wo sich tools.jar befindet.

    Die meisten Class-not-found-Fehler können behoben werden, indem man die CLASSPATH-Einstellung verwendet, um den Speicherort von tools.jar anzugeben.

    Manchmal wird sich mehr als eine Datei mit dem Namen tools.jarauf Ihrem System befinden. Einige davon werden von früheren Versionen des JDK und anderen Java- Entwicklungstools stammen. Andere wiederum könnten von Webbrowsern verwendet werden, die Java unterstützen.

    Sehen Sie sich in der Spalte In Ordner den vollen Namen (inklusive des Laufwerkskennbuchstabens) eines jeden Ordners an, der eine Datei mit dem Namen tools.jar enthält. Versuchen Sie den Eintrag zu finden, der sich auf den Ordner bezieht, in dem Sie das JDK 1.2 installiert haben

    Schreiben Sie sich den gesamten Pfadnamen dieses Ordners auf. Dieser Pfadname gefolgt von \tools.jar sollte Ihre CLASSPATH-Einstellung sein.

    Die CLASSPATH-Anweisung prüfen
    Stellen Sie sicher, daß Ihr System an der richtigen Stelle nach der JDK-1.2-Version von tools.jar sucht. Dazu prüfen Sie die CLASSPATH-Einstellung Ihres Systems.

    Windows-Anwender können die aktuellen CLASSPATH-Einstellungen überprüfen, indem sie folgendes an der MS-DOS-Eingabeaufforderung eingeben:

    echo %CLASSPATH%

    Stellen Sie sicher, daß Sie die Prozentzeichen (%) vor und nach dem Ausdruck CLASSPATH angeben. Wenn in Ihrem System ein CLASSPATH festgelegt ist, sehen Sie eine Liste aller Ordner und Dateien, in denen die JDK-Tools nach Java-Klassen suchen. Die einzelnen Ordner in der Liste sind durch Strichpunkt voneinander getrennt. Im folgenden ein Beispiel:

    .;C:\jdk1.2\lib\tools.jar

    In dieser CLASSPATH-Liste bezeichnet der Eintrag C:\jdk1.2\lib\tools.jar einen Ort, von dem Java-Klassen geladen werden. Zusätzlich befindet sich in der Auflistung ein Punkt (.) als erster Eintrag. Dieser Eintrag stellt sicher, daß JDK-Utilities auch in dem aktuellen Ordner nach Klassen suchen, die anderswo nicht gefunden werden.

    Falls CLASSPATH keine Referenz auf tools.jar des JDK 1.2 beinhaltet, müssen Sie die CLASSPATH-Einstellungen bearbeiten und dies entsprechend einfügen.

    Die CLASSPATH-Einstellungen ändern
    Die CLASSPATH-Einstellungen ändern Sie, indem Sie die autoexec.bat editieren. Dies ist eine Text-Datei, die sich im Stammordner der ersten Festplatte Ihres Systems befindet (normalerweise ist dies C:).

    Um die CLASSPATH-Einstellungen auf einem Windows-95-System zu ändern, müssen Sie die Datei autoexec.bat bearbeiten.

    Suchen Sie nach einer Zeile, die mit dem Text CLASSPATH=, SET CLASSPATH= oder CLASSPATH gefolgt von einem Leerzeichen beginnt.

    Problem: keine CLASSPATH-Anweisung
    Wenn Sie keine CLASSPATH-Anweisung finden, sollten Sie eine in die Datei autoexec.bat einfügen. Gehen Sie dazu an das Ende der Datei, und fügen Sie eine Leerzeile ein. Geben Sie in dieser Zeile den CLASSPATH= gefolgt von dem Ordnernamen des JDK. Die folgende Zeile können Sie verwenden, wenn sich Ihr JDK im Ordner C:\jdk1.2 auf Ihrem System befindet:

    CLASSPATH=.;C:\jdk1.2\lib\tools.jar

    Speichern Sie die Datei, nachdem Sie diese Änderung vorgenommen haben. Sie müssen Ihr System neu starten, bevor diese Änderungen Wirkung zeigen. Wenn sich die Datei tools.jar in dem Ordner befindet, den Sie in der CLASSPATH-Anweisung angegeben haben, sollten Sie in der Lage sein, Programme erfolgreich zu kompilieren.

    Problem: der Ordner des JDK 1.2 ist nicht in der CLASSPATH-Anweisung
    Wenn Sie eine CLASSPATH-Anweisung in der autoexec.bat-Datei finden, die keine Referenz auf den korrekten Pfad von tools.jar beinhaltet, dann suchen Sie nach dem Text %JAVA_HOME% in dieser Zeile.

    Sie finden eventuell %JAVA_HOME% gefolgt von dem Text wie \bin\tools.jar, wie z.B. in CLASSPATH=%JAVA_HOME%\lib\ tools.jar oder CLASSPATH=%JAVA_HOME%..\lib\tools.jar.

    Falls Sie %JAVA_HOME% finden sollten, löschen Sie es und den Text, der darauf folgt, bis zum nächsten Strichpunkt (allerdings ohne den Strichpunkt zu löschen). Ersetzen Sie es durch den korrekten Pfad zu tools.jar. Stellen Sie sicher, daß Sie keine Strichpunkte, die zur Abtrennung der einzelnen Ordner voneinander verwendet werden, löschen.

    Falls Sie %JAVA_HOME% in der CLASSPATH-Anweisung nicht finden, plazieren Sie Ihren Cursor am Ende der Zeile mit der CLASSPATH-Anweisung. Geben Sie an dieser Stelle ; gefolgt von dem korrekten Pfad zu tools.jar ein. Wenn C:\jdk1.2\lib\tools.jar der Pfad zu tools.jar ist, sollte das Ende Ihrer CLASSPATH-Anweisung wie das Ende der folgenden Zeile aussehen:

    CLASSPATH=.;C:\DEV\CHATSERVER;C:\jdk12\lib\tools.jar

    In der CLASSPATH-Anweisung sollte auf keine andere Version des JDK verwiesen werden. Wenn Sie einen Pfad entdecken, der sich auf eine frühere Version bezieht, dann löschen Sie die Referenz auf diesen Ordner. Falls sich daraus eine Zeile, die zwei Strichpunkte nacheinander (;;) enthält, ergeben sollte, löschen Sie einen der Strichpunkte.

    Speichern Sie diese Datei, nachdem Sie diese Änderungen gemacht haben. Sie müssen Ihr System neu starten, bevor die CLASSPATH-Anweisung Wirkung zeigt. Wenn sich die Datei tools.jar in dem Ordner befindet, den Sie in der CLASSPATH-Anweisung angegeben haben, sollten Sie in der Lage sein, Programme, wie z.B. HalloDan erfolgreich zu kompilieren und auszuführen.

  3. Hallo Knut,

    ein ähnliches Problem hatten wir doch gerade erst.
    siehe dazu auch: <../../sfarchiv/1999_4/t09229.htm#a46656>

    Gruß
       Michael