Eclipse Runnable Jar exportieren mit externer Library

P@u1

Aktives Mitglied
Hallo,

ich versuche im Moment, mein derzeitiges Projekt (ein Plotprogramm für ein EKG-Signal) als runnable jar file zu exportieren.
Ein Problem ist, dass ich eine externe Library (rxtx) zum auslesen der seriellen Schnittstelle verwende.
Ich habe also per Eclipse versucht zu exportieren mit export as runnable jar file und habe ausgewählt, dass die externe library rxtx in einen Unterodner des Zielverzeichnisses gespeichert wird.
Das exportieren hat scheinbar ohne Probleme funktioniert.
Leider kommt wenn ich die exportierte jar-Datei per Kommandozeile ausführe folgender Fehler:

C:\Dokumente und Einstellungen\MeinBenutzerName\Desktop\EKGStuhlPlot>java -jar "EKGS
tuhlPlot v 0.7.jar"
Exception in thread "main" java.lang.NoClassDefFoundError: gnu/io/CommPortIdenti
fier
at SerialPortReader.connect(SerialPortReader.java:60)
at Signal.connect(Signal.java:111)
at JPlotter.main(JPlotter.java:45)
Caused by: java.lang.ClassNotFoundException: gnu.io.CommPortIdentifier
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)
... 3 more

Ich habe mir daraufhin einiges durchgelesen von Manifestdateien und co, aber die Manifestdatei die von Eclipse erzeugt wurde sieht eigentlich richtig aus:
Manifest-Version: 1.0
Class-Path: . EKGStuhlPlot v 0.7_lib/RXTXcomm.jar
Main-Class: JPlotter

Der Unterordner EKGStuhlPlot v 0.7_lib exisitert auch und beinhaltet die eingebundene jar datei + 2 dll dateien die zu dieser Bibliothek gehören

Ich kriege den oben genannten Fehler leider nicht behoben, die Klasse wird nicht gefunden, obwohl so wie ich das sehe alles ordnungsgemäß vorhanden und eingebunden ist.

Ich habe noch mögliche Alternativlösungen gefunden (die ich noch nicht getestet habe), bei denen man alles in eine jar-Datei packt. Ich möchte diese Library allerdings lieber extern einbinden.

Könnt ihr mir weiterhelfen?
 
Könnt ihr mir weiterhelfen?


Ich versuche es mal. Lege im Projectfolder einen neuen Folder namens lib und lege die externe Library dort ab. Dann kannst Du in der Manifest-Datei die Zeile

Class-Path: . lib/DeinJar.jar

verwenden. Zudem muss Du bei der Spezifikation der Main-Class den vollen Packetnamen mitgeben.
 
Zuletzt bearbeitet:

Zurück
Oben