Slyh: Abhilfe schaffen bei "java.lang.NoClassDefFoundError "

Beitrag lesen

Hallo,

Ich bin gerade dabei etwas in die Softwareprogrammierung einzutauchen. Dazu habe ich mir mehrere Tutorials durchgelesen; u.a. auch dieses: http://www.gailer-net.de/tutorials/java/
Beim Durchlesen bin auf dieses Programm gestossen: http://www.gailer-net.de/tutorials/java/Notes/chap50/ch50_9.html

Ich hab mir jetzt nur dieses Beispiel angesehen. Aber hier fällt mir
bereits ein ziemlich schlechter Code-Stil auf. Bist du sicher, daß du
dich nicht lieber durch eines der bekannten (kostenlosen) Java-Bücher
durcharbeiten willst?
http://www.javabuch.de
http://www.galileocomputing.de/openbook/javainsel6/

Gesagt getan, aber NetBeans gibt nur folgendes aus:

java.lang.NoClassDefFoundError: test/VideoVerleih
Exception in thread "main"
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

Dazu habe ich zwei Fragen:

  1. Was ist an dem Programm falsch? Was muss geändert werden? Die Recherche im Internet hat mich darauf gebracht, dass diese Fehlermeldung kommt, wenn irgendetwas mit den Pfaden nicht stimmt.

Nicht zwingend. Eigentlich bedeutet es eher, daß Java die genannte
Klasse nicht findet. Das muß nicht unbedingt etwas mit dem Klassenpfad
zu tun haben, sondern kann auch einfach durch einen falschen Aufruf
passieren.

Aus der Fehlermeldung schließe ich, daß die Klasse "VideoVerleih" im
Package "test" liegt. Stelle hierfür sicher, daß sich die Datei
"VideoVerleih.java" in Netbeans in diesem Package befindet. Im Prinzip
ist ein Package nichts anderes als ein Verzeichnis. Du wirst also auf
Dateiebene ein Verzeichnis "test" finden, in dem sich "VideoVerleih.java"
und dann auch "Videoverleih.class" befinden.
Wenn dem nicht so ist, ist etwa inkorrekt.

Wenn sich die Klasse in Netbeans korrekt im Package "test" befindet,
dann prüfe bitte, ob du am Anfang deiner Datei auch "package test;"
stehen hast. Steht dies nicht dort, befindet sich die Klasse im Default-
Package und stimmt damit nicht mit der Package/Verzeichnis-Struktur
in Netbeans überein.

Eine gute IDE sollte einen solchen Fehler übrigens anmeckern.

Eine gute IDE wäre übrigens Eclipse. Meiner Meinung nach ist Eclipse in
vielen Belangen Netbeans bei weitem überlegen.

  1. Warum steht da trotz der Fehlermeldung folgendes:

BUILD SUCCESSFUL (total time: 1 second)

Es ist ja ganz eindeutig nicht successful gebuildet worden :-) !?

Doch, es wurde erfolgreich gebaut. Nur die Ausführung ist schiefgelaufen.

Gruß
Slyh