Eclipse Multiple JAR Deployment

kornuletz

Mitglied
Hallo Community!

Ich bin ein begeisterter Gelegenheitsprogrammierer. Leider komme ich grade nicht weiter, und brauche Eure Unterstützung..

Ich habe mein fertiges Projekt in Eclipse, exportiere es als JAR und möchte es mit der Batch-Datei
java -jar projekt.jar
laufen lassen, doch bekomme ich die Fehlermeldung
"Exception in thread "main" java.lang.NoSuchMethodError:"

Die Methode ist ja auch in einer anderen JAR, die in meinem Projekt unter libs/andere.jar liegt. Ich habe [STRIKE]alles[/STRIKE] einiges versucht und schaffe es nicht, die andere.jar beim laufen zu binden.

Ich habe es über manifest-datei und über classpath versucht, eventuell nicht ganz richtig, da ich es nur noch schlimmer gemacht habe...

Meine Frage wäre folgende:
wie schaffe ich es am einfachsten, meine Batch-Datei zu erweitern um diese andere.jar mit zu berücksichtigen? es müsste eigentlich nicht so schwer sein... oder? ???:L

Gruß,
kornuletz

PS. falls das thema hier nicht passt, bitte verschieben, danke..
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ja, classpath ist eigentlich schon richtig. Wenn die JARs alle in einem Verzeichnis liegen, sollte es ein
java -cp "projekt.jar;andere.jar;weitere.jar" ...
schon tun (unter Linux: ":" anstelle von ";" !)
 

kornuletz

Mitglied
Leider hilft nicht, wenn ich
java -cp "SyncClient.jar;elib_api.jar;log4j-1.2.16.jar" -jar SyncClient.jar
benutzte (SyncClient = projekt, rest = benutzte Bilbliotheken).


Hier die komplette Fehlermeldung:

Exception in thread "main" java.lang.NoSuchMethodError: javax.xml.ws.WebFault.m
ssageName()Ljava/lang/String;
at com.sun.xml.ws.model.RuntimeModeler.processExceptions(RuntimeModeler
java:1077)
at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeM
deler.java:815)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.jav
:586)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java
366)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler
java:246)
at com.sun.xml.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceD
legate.java:667)
at com.sun.xml.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.jav
:655)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.ja
a:347)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.ja
a:330)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.ja
a:312)
at javax.xml.ws.Service.getPort(Unknown Source)
at com.opentext.ecm.services.auth.AuthenticationService.getAuthenticati
nPort(AuthenticationService.java:56)
at de.doctra.ecm.SyncClient.setupServices(SyncClient.java:476)
at de.doctra.ecm.SyncClient.doActions(SyncClient.java:342)
at de.doctra.ecm.SyncClient.main(SyncClient.java:228)

Wenn ich das richtig lese liegt es an die Methode aus SyncClient für Authentifizierung, die in AuthenticationService.java:56 sein müsste, aber nicht gefunden wird. Diese Methode ist in einer der 2 mitgegebenen Bibliotheken (elib_api.jar).
 

kornuletz

Mitglied
@Marco13: Danke für die Antwort, ich habe das Problem gefunden.

Eines der mitgebindeten Libraries musste ich als "endorsed" in meiner Java Distribution bekanngeben, da die neuste Version der Library nicht kompatibel mit meinem Programm ist.

Ich habe praktisch die JAR aus der lokalen lib in %JAVA%\JRE\lib\endorsed rüberkopiert, und jetzt klappt es.
 

Oben