NoClassDefFoundError (wrong name)

SandmannX

Mitglied
Hallo Leute,

Ich habe folgendes Problem:
Ich habe ein sehr umfangreiches Applet mit Datenbankzugriff geschrieben, dass ich jetzt in ein signiertes JAR-File packen und auf einen Server stellen will. Das Programm funktioniert optimal in der Entwicklungumgebung (Eclipse 2.3), beim externen Aufruf treten aber Probleme auf.

Das Erstellen des JARs und das Ahängen der Signatur war kein Problem, aber wenn ich die HTML-Datei zum Starten aufrufe erscheint zwar das Zertifikat, aber das Applet wird nicht initialisiert.

Starte ich das ganze mit dem Appletviewer bekomme ich folgende Fehlermeldung:

"java.lang.NoClassDefFoundError: SAPSIZING/Main (wrong name: Main)"

Daraufhin habe ich als erstes überprüft, ob ich mich evtl. bei der Groß-/Kleinschreibung von Datei und Klassenname vertan habe - Fehlanzeige.

Auch wildes Experimentieren mit dem Classpath brachte keine Ergebnisse. Eine frühere Version des Applets, die mir als JAR vorliegt funktioniert einwandfrei. Versuche ich aber die dazugehörigen Sourcefiles in ein neues JAR zu packen und dieses dann aufzurufen bekomme ich wieder den oben beschriebenen Fehler.

Ich wäre echt dankbar, wenn mir da jemand weiterhelfen könnte. Ich brüte mittlerweile schon seit drei Tagen über dieser Kleinigkeit :(

THX schonmal

Patrick
 
Hallo!

Wie sieht deine Package Struktur aus?
Wie sieht dein Applet bzw. Object Tag im HTML aus?
Wurden beim einpacken ins Jar die relativen Pfade beibehalten?

Gruß Tom
 
vielleicht stimmt mit den Metadateien der JAR-Files etwas nicht.

vielleicht stimmt mit der CLASSPATH-Umgebungsvariable etwas nicht.

Häng da einmal den Pfand zu den Jar-File/s an.

mfg
 
Die Sourcefiles liegen alle im Unterordner .\SAPSIZING des aktuellen Verzeichnisses. Kompiliert, gepackt und signiert habe ich wie folgt (beim Classpath auch schon alles mögliche andere ausprobiert):

javac -classpath ".;.\Main.jar;.\java_30.zip" SAPSIZING\*.java
jar cf main.jar SAPSIZING\*.class SAPSIZING\logo.jpg
jarsigner -storepass password -keypass password main.jar myKey

Der Applet-Tag sieht folgendermaßen aus:
<APPLET code="SAPSIZING.Main.class" archive="Main.jar" name="HPSAP" width=800 height=550></APPLET>


Danke für eure Hilfe, bin noch nicht so wirklich fit in Java.
 
OK, ich habe jetzt den Tag wie folgt geändert:

<APPLET codebase="./" code="SAPSIZING.Main.class" archive="Main.jar" name="HPSAP" width=800 height=550></APPLET>

Das müsste doch die Bezeichnung für das aktuelle Verzeichnis sein, oder? Hat allerdings keinerlei Effekt :(
 
Danke für die Hilfe,

das Problem hat sich in Luft aufgelöst. Ich weiß zwar immernoch nicht, an was es lag, aber irgendwie gehts jetzt
 
Zurück