hangloosesdk Geschrieben 31. Oktober 2001 Geschrieben 31. Oktober 2001 Hallo, ich habe es inzwischen geschafft, eine jar-Datei zu erstellen. Durch einen Doppelklick wird mein Programm auch geöffnet, aber irgendwann bekomme ich eine "NotClassDefFoundError"-Exception. ??? Eigentlich habe ich angegeben, dass alle Klassen und Ressourcen eingefügt werden sollen. Warum findet der die also nicht??? Finde ich echt nicht logisch! Kann mir jemand einen Tip geben??? Danke, Fine Zitieren
Mirko Geschrieben 31. Oktober 2001 Geschrieben 31. Oktober 2001 Ich gehe mal davon aus, dass du dein Java Programm jetzt außerhalb vom JBuilder ausführen willst. Hast du deine Jar-Datei auch dem Classpath beim aufruf der Java.exe hinzugefügt? Nur dann wird auch dieses Jar-File durchsucht. Falls du das gemacht hast, dann schau dir doch mal das Jar-File etwas genauer an. Du kannst es einfach mit winzip öffen. Wie sehen da die Pfade der Class-Files aus? Da dürfen keine absoluten Pfade stehen. Zitieren
hangloosesdk Geschrieben 31. Oktober 2001 Autor Geschrieben 31. Oktober 2001 Ich habe aus dem Classpath keine Datei übernommen. Muss ich das? Wieso? In meiner Anwendung geht es um xml-Dateien, die ich einlese. Dafür binde ich packages von org.jdom... ein. Davon scheint eine Klasse auf die Klasse org.w3c.dom.Node zuzugreifen. Und die ist nicht in der jar-Datei mit drin. ??? Ich bin noch nicht ganz dahinter gestiegen, welche Klasse Node denn aufruft. In der Fehlermeldung steht eine Methode von meinen Klassen ganz oben. Aber ich benutze Node nicht. ??? Zitieren
Mirko Geschrieben 31. Oktober 2001 Geschrieben 31. Oktober 2001 dann scheint er also deine eigenen Klassen, die in der Jar-Datei sind, zu finden. Aber du mußt eben darauf achten, dass auch die JDom-Klassen (das Jdom-Jar) mit im Classpath sind und eben auch die org.w3c.dom.* . Offensichtlich fehlen dir die im Moment. Zitieren
hangloosesdk Geschrieben 31. Oktober 2001 Autor Geschrieben 31. Oktober 2001 Das behinderte ist, dass die jdom-Klassen in dem Zip-Archiv sind, die org.w3c.dom.* nicht. Außerdem soll ich die Anwendung auch auf anderen Rechnern laufen. Und die Klassen sind in dem jdk1.3 nicht dabei. Also muss ich die irgendwie in das jar-Archiv packen. Nur wie sage ich das dem JBuilder??? Zitieren
Mirko Geschrieben 31. Oktober 2001 Geschrieben 31. Oktober 2001 diese ganzen xml-klassen bekommst du ja schon als fertige jar-files. Such danach mal bei Sun und bei Apache. Ich weiß jetzt selber nicht auswendig, welche das sind. Und diese jar-files müssen dann mit in den Classpath. Damit hat der JBuilder dann nix zu tun. Zitieren
hangloosesdk Geschrieben 31. Oktober 2001 Autor Geschrieben 31. Oktober 2001 Hab's mal mit dem Classpath versucht, hat sich aber nix geändert. Die Klassen, die ich brauch, habe ich. Wenn ich die Anwendung aus dem JBuilder starte, funktioniert auch alles wunderbar. Nur das dumme Archiv will nicht! Zitieren
Mirko Geschrieben 31. Oktober 2001 Geschrieben 31. Oktober 2001 poste doch mal deinen Classpath...bzw deinen komplette java.exe Aufruf. mit dem du dein Programm startest. und beschreib mal das Verzeichnis, in dem du alles liegen hast und ausführst... Dass der JBuilder dein Programm startet ist klar, weil der schliesslich auch wei, wo die einzelnen Klassen liegen. Der benutzt anscheinend einen anderen Klassloader als die java.exe Zitieren
hangloosesdk Geschrieben 31. Oktober 2001 Autor Geschrieben 31. Oktober 2001 Mein Classpath: (die jdom-Klassen stehen nicht drin, die sind ja im Archiv) D:\Apps\JBuilder5\jdk1.3\lib\tools.jar; d:\user\xml\jaxp-1.1\crimson.jar; d:\user\xml\jaxp-1.1\jaxp.jar; d:\user\xml\jaxp-1.1xerces.jar Der Aufruf, den der JBuiler macht: D:\Apps\jbuilder5\jdk1.3\bin\javaw -classpath "D:\user\mdkosst\Abschlussprüfung\4-Code\vibrox\classes;D:\user\mdkosst\xml\jdom-b7\build\jdom.jar;D:\user\mdkosst\xml\jaxp-1.1\crimson.jar;D:\user\mdkosst\xml\jaxp-1.1\jaxp.jar;D: \user\mdkosst\xml\jaxp-1.1\xalan.jar;D:\Apps\jbuilder5\jdk1.3\demo\jfc\Java2D\Java2Demo.jar;D:\Apps\jbuilder5\jdk1.3\jre\lib\i18n.jar;D:\Apps\jbuilder5\jdk1.3\jre\lib\jaws.jar;D:\A pps\jbuilder5\jdk1.3\jre\lib\rt.jar;D:\Apps\jbuilder5\jdk1.3\jre\lib\sunrsasign.jar;D:\Apps\jbuilder5\jdk1.3\lib\dt.jar;D:\Apps\jbuilder5\jdk1.3\lib\tools.jar" vibrox.ViBroX Wenn ich das jar-File aufrufe: >java -jar "d:\user\mdkosst\Abschlussprüfung\4-Code\vibrox\vibrox.jar" Meine Klassen liegen alle in: d:\user\mdkosst\Abschlussprüssprüfung\4-Code\vibrox\classes Die jdom.jar-Datei liegt in: d:\user\mdkosst\xml\jdom\build Die Dateien xerces.jar, xalan.jar und crimson.jar (die nicht gefunden werden) liegen in: d:\user\mdkosst\xml\jaxp-1.1 Zitieren
hangloosesdk Geschrieben 31. Oktober 2001 Autor Geschrieben 31. Oktober 2001 Hab' eigentlich nicht viel geändert. Aber es funktioniert jetzt. ? ) Nochmal super danke, dass Du so versucht hast, mir zu helfen!!! Fine Zitieren
Mirko Geschrieben 31. Oktober 2001 Geschrieben 31. Oktober 2001 Entweder hast du dich jetzt vertippt, oder ich habe gerade deinen Fehler gefunden: Das ist ein Teil deines Classpaths <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> d:\user\xml\jaxp-1.1\crimson.jar; d:\user\xml\jaxp-1.1\jaxp.jar; d:\user\xml\jaxp-1.1xerces.jar Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.