Hallo zusammen,
gleich vorab: Ich programmiere nicht in JAVA, sondern habe nur die Aufgabe ein unter Windows entwickeltes Programm unter Linux (Suse) lauffähig zu machen.
Das Programm erzeugt aus einer XML-Datei PDF-Dokumente. Es ist in einer JAR-Datei, nutzt aber noch weitere JAR's, die unter einem Unterverzeichnis "/lib" liegen.
Nachdem die JAR-Datei einen Fehler auswarf, dass die Startklasse nicht gefunden wurde, habe ich ins MANIFEST die Start-Class und den Class-Path aller "anderen JAR's" unter "/lib" eingetragen / eintragen lassen. Das MANIFEST sieht jetzt (für die Hauptanwendung) wie folgt aus:
Problem: Wenn ich jetzt das Hauptprogramm starte mit:
>java -jar casprintclient.jar
wird ein Fehler bzgl. einer Klasse ausgeworfen, die sich im "/lib"-Verzeichnis befindet,
nämlich in der "lib/casprint.jar". Hier die Fehlermeldung:
Frage: Was ist falsch ?
Muss in jedes MANIFEST der JAR's unter "/lib" auch die Starterklasse und ein Class-Path gesetzt werden ?
Vielen Dank für Eure Hilfe.
J.
gleich vorab: Ich programmiere nicht in JAVA, sondern habe nur die Aufgabe ein unter Windows entwickeltes Programm unter Linux (Suse) lauffähig zu machen.
Das Programm erzeugt aus einer XML-Datei PDF-Dokumente. Es ist in einer JAR-Datei, nutzt aber noch weitere JAR's, die unter einem Unterverzeichnis "/lib" liegen.
Nachdem die JAR-Datei einen Fehler auswarf, dass die Startklasse nicht gefunden wurde, habe ich ins MANIFEST die Start-Class und den Class-Path aller "anderen JAR's" unter "/lib" eingetragen / eintragen lassen. Das MANIFEST sieht jetzt (für die Hauptanwendung) wie folgt aus:
Code:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: Rodrigo de Vivar
Main-Class: de.cas.printclient.BatchPrinter
Class-Path: lib/casprint.jar lib/batik.jar lib/avalon-framework-cvs-20
020315.jar lib/swt.jar lib/ujac.jar lib/fop.jar lib/itext.jar lib/ite
xttask.jar lib/itext-xml.jar lib/log4j-1.2.8.jar lib/registry.jar
Problem: Wenn ich jetzt das Hauptprogramm starte mit:
>java -jar casprintclient.jar
wird ein Fehler bzgl. einer Klasse ausgeworfen, die sich im "/lib"-Verzeichnis befindet,
nämlich in der "lib/casprint.jar". Hier die Fehlermeldung:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: de/cas/print/SpartenPrinter
at de.cas.printclient.BatchPrinter.main(BatchPrinter.java:11)
Caused by: java.lang.ClassNotFoundException: de.cas.print.SpartenPrinter
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 1 more
Frage: Was ist falsch ?
Muss in jedes MANIFEST der JAR's unter "/lib" auch die Starterklasse und ein Class-Path gesetzt werden ?
Vielen Dank für Eure Hilfe.
J.