Java Programm ausführen

Code:
C:\>java -cp C:\GeoCodeClient/GeoCodeClient.jar at.pcd.wam.technologie.batch.Run
Batch
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logg
er
        at at.pcd.wam.technologie.controller.ClientController.<clinit>(ClientCon
troller.java:42)
        at at.pcd.wam.technologie.batch.RunBatch.main(RunBatch.java:30)

was sagt mir das?
 
Es fehlt noch ein Pfad auf die Logger.jar
edit:

C:\>java -cp C:\GeoCodeClient/GeoCodeClient.jar;pfadzulogger/log4j.jar at.pcd.wam.technologie.batch.RunBatch
 
Hmm das Projekt benötigt aber so um die 17 Jar Files - und die sind nicht im Lib Ordner weil das dumme Maven spinnt.
 
Im Lib-Ordner würden dir die Files auch nichts nützen - wie schon erwähnt: der Classpath muss auf jedem einzelnen Jar stehen! Also 17 Einträge bei 17 Jars! (Würde ich an deiner Stelle eine .bat-Datei für schreiben oder sowas *g*).
Was leider auch nicht ohne weiteres funktioniert ist das Jar im Jar. Allerdings gab's hier mal irgendwas ... *grübel* ... nannte sich glaub ich FatJar - kannst ja mal mit der Suchfunktion nach suchen. Dann kannst du alles auch in ein einziges Jar-File packen, falls dir das weiterhilft.

Bei ausführbaren Jars (also solche, die du durch Doppelklick startest) wird der Classpath übrigens im Manifest-File innerhalb der Jar-Datei angegeben.
 
Zuletzt bearbeitet:
LOL, selbst ist der Mann :D

Maven und ant sind doch für Warmduscher....

Nee, im Ernst. Schreib Dir doch ein Batchfile. Geht schnell und erleichtert die Aufrufe. Mittelfristig solltest Du aber Ant oder Maven ans fliegen bringen.

gruss
 
Es muss doch möglich sein diese eine Main Klasse aufzurufen und zu starten ohne 17 Jars anzusprechen?
 
Wie soll das gehen. Die Funktionen aus den JARS werden entweder von Deiner Klasse benutzt, dann hilft auskommentieren, oder Du erbst sie, dann wird schon schwieriger, oder doch verwendest Klassen, die wiederum auf diese Funktionen angewiesen sind. Kannst Du Die denn keine kleine Testumgebung für Deine Logik bauen, die diese Jars nicht benötigt?

Gruss
 
Nein kann ich nicht, dann könnte ich ja gleich ein Hello World aufrufen :(

Also muss ich eine Batch datei erstellen welche alle Jars anspricht?

Ma gucken..
 
Code:
SET MyClassPath=.
SET MyClassPath=%MyClassPath%;jarfile1.jar
SET MyClassPath=%MyClassPath%;jarfile2.jar
...
...
SET MyClassPath=%MyClassPath%;jarfile17.jar
java -cp %MyClassPath% at.pcd.wam.technologie.batch.RunBatch

So in etwa...
 
Zurück