1234lau
Goto Top

Exception in thread main java lang NoClassDefFoundError

Ich bin eine Anfängerin in Java und habe gleich Probleme mit der og. Fehlermedung

Ich habe die java version "1.6.0_24" und JDK 1.4.2
Die Befehle "Javac" und "java" starten problemlos.
Habe ein Code aus dem Übungsbuch ausführen wollen und ich schalte immer an der Fehlermeldung aus.
Das compilieren geht aber der interpreter bringt die o.g. Fehlermeldung.
lt. Google liegt es an meine Umgebungsvariablen sg. CLASSPATH, die anscheinend nicht richtig definiert ist.
Habe schon alles mögliche versucht ohne Erfolg.

Ich hofe Hilfe hier zu finden

Danke

Content-ID: 167398

Url: https://administrator.de/forum/exception-in-thread-main-java-lang-noclassdeffounderror-167398.html

Ausgedruckt am: 22.12.2024 um 15:12 Uhr

dog
dog 02.06.2011 um 18:16:30 Uhr
Goto Top
$ cat HelloWorld.java
public class HelloWorld {
   public static void main(String args) { 
    System.out.println("Hello World");  
  }
}

$ javac HelloWorld.java
$ java HelloWorld
Hello World
$ java HelloWorld.class
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class  
Caused by: java.lang.ClassNotFoundException: HelloWorld.class
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: HelloWorld.class.  Program will exit.
$
1234lau
1234lau 02.06.2011 um 18:25:50 Uhr
Goto Top
Ja, das ist die Fehlermeldung, die ich erhalte.

Lösung ?
dog
dog 02.06.2011 um 18:27:31 Uhr
Goto Top
Lösung ?

Steht da.
$-Zeilen sind Befehle, ich ich ausgeführt habe
1234lau
1234lau 02.06.2011 um 18:37:27 Uhr
Goto Top
Danke,
aber es geht nicht. Siehe FM.
G:\Java\Lernhefte\Jav01\Lektion3>$ java ErsteApplikation.class
Der Befehl "$" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Was soll das $-Zeichen bewirken?
dog
dog 02.06.2011 um 18:40:10 Uhr
Goto Top
Was soll das $-Zeichen bewirken?

Nichts.
Das $ Zeichen ist der Prompt.
Bei dir ist das:
G:\Java\Lernhefte\Jav01\Lektion3>
Es soll nur zeigen, was ich ausgeführt habe und was Programmausgabe war.

Guck dir nochmal genau an, was ich geschrieben habe.
1234lau
1234lau 02.06.2011 um 18:51:12 Uhr
Goto Top
Gut,
aber ich verstehe nicht was bei deiner Ausführung anders ist als bei meiner. Siehe

G:\Java\Lernhefte\Jav01\Lektion3>java ErsteApplikation.class
Exception in thread "main" java.lang.NoClassDefFoundError: ErsteApplikation/clas
s
Caused by: java.lang.ClassNotFoundException: ErsteApplikation.class
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: ErsteApplikation.class. Program will exit.

Das compilieren geht ja schon.
dog
dog 02.06.2011 um 18:57:33 Uhr
Goto Top
Guck dir mal Zeile 9 und 11 an und die Ausgabe, die sie erzeugen.
1234lau
1234lau 02.06.2011 um 19:06:07 Uhr
Goto Top
Danke,

leider nicht besser


G:\Java\Lernhefte\Jav01\Lektion3>$ javac ErsteApplikation
Der Befehl "$" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

G:\Java\Lernhefte\Jav01\Lektion3>$ java ErsteApplikation
Der Befehl "$" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
dog
dog 02.06.2011 um 19:10:42 Uhr
Goto Top
Nochmal: das $ gibst du nicht ein, es ist nur eine optische Hilfe.

Ich löse jetzt mal auf:

Dem Java Compiler gibst du eine Datei um sie zu kompilieren, aber der Runtime gibst du eine Klasse zum Ausführen und keine Datei!
Darum ist der Befehl auch immer:
javac KlassenName.java
java KlassenName

Java sucht dann automatisch eine Datei KlassenName.class

Die Regel ist lediglich, dass die Datei, die eine Klasse enthält auch so heißen muss wie die Klasse (Klasse A befindet sich also immer in A.java).

Wenn der KlassenName einen Punkt enthält geht Java von einem Package aus, aber das kommt sicher später noch in deinem Buch.
1234lau
1234lau 02.06.2011 um 19:16:54 Uhr
Goto Top
Ich liebe Dich
Wer auch immer Du bist face-smile