Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Jar-Datei mit JBuilder erstellen?

Empfohlene Antworten

Veröffentlicht

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

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.

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. ???

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.

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???

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.

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!

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

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

Hab' eigentlich nicht viel geändert.

Aber es funktioniert jetzt. ?

:))

Nochmal super danke, dass Du so versucht hast, mir zu helfen!!!

Fine

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.