Jar mit mehreren Jars und Eclipse

DerGrinsemann

Mitglied
Hallo!

Vielleicht habe ich ja einen Denkfehler.

Ich benutze Hibernate für ein Web-Projekt - insgesamt sind das 36 Jar-Dateien. Nun wollte ich diese 36 Dateien in eine grosse Sammel-Jar-Datei reinpacken. Im Manifest habe ich die Dateien in den Classpath reingenommen.

Wenn ich diese grosse Jar-Datei in mein Eclipse-Projekt hinzufüge, funktionieren die Import-Anweisungen nicht mehr, also Eclipse findet die Bibliotheken nicht.

Code:
jar cfvm0 Hibernate324FAT.jar Manifest.txt -C Hibernate324All .

Code:
Manifest-Version: 1.0
Class-Path: antlr-2.7.6.jar asm-attrs.jar asm.jar c3p0-0.9.1.jar cglib
 -2.1.3.jar commons-collections-2.1.1.jar commons-logging-1.0.4.jar co
 ncurrent-1.3.2.jar connector.jar dom4j-1.6.1.jar ehcache-1.2.3.jar ej
 b3-persistence.jar hibernate-annotations.jar hibernate-commons-annota
 tions.jar hibernate-entitymanager.jar hibernate3.jar jaas.jar jacc-1_
 0-fr.jar javassist.jar jaxen-1.1-beta-7.jar jboss-cache.jar jboss-com
 mon.jar jboss-jmx.jar jboss-system.jar jdbc2_0-stdext.jar jgroups-2.2
 .8.jar jta.jar log4j-1.2.11.jar oscache-2.1.jar proxool-0.8.3.jar swa
 rmcache-1.0rc2.jar xerces-2.6.2.jar xml-apis.jar
Created-By: 1.5.0_07 (Apple Computer, Inc.)

Was mache ich falsch?

Marco
 
Hallo,

Jar-Dateien in eine Jar-Datei verpacken und weiterhin nutzen ist leider nicht so einfach möglich. Wenn du eine Applikation in einer Jar hast müssen die anderen Jar-Files auch außerhalb sein, aber trotzdem müssen sie im Manifest-File der Applikation angegeben werden.



MFG

zEriX
 
Die Lösung würde mich auch interessieren. Da ein Jar-File, wie eine Verzeichnis behandelt wird, müsste man auf Jars in Jars verweisen. Ich habe habe das Problem mal umständlich gelöst, indem ich die Jars ausgepackt und zu einem großen zusammengepackt habe. Das ist sicher nicht sehr elegant, funktioniert aber bei wenigen jars ganz gut. Ich habe mittlerweile auch etwas gefunden, was uns helfen könnte...

http://one-jar.sourceforge.net/

Grüße
 
Ich habe auch gegoogelt, es geht nicht

Sun seite:

Note : The Class-Path header points to classes or JAR files on the local network, not JAR files within the JAR file or classes accessible over internet protocols. To load classes in JAR files within a JAR file into the class path, you must write custom code to load those classes. For example, if MyJar.jar contains another JAR file called MyUtils.jar, you cannot use the Class-Path header in MyJar.jar's manifest to load classes in MyUtils.jar into the class path.
 
Damit ist die Beschreibung im Kapitel 25.3.5 "Der Eintrag Class-Path in einer Manifest-Datei" im Buch "Java ist auch eine Insel, 4. Auflage" falsch. In der 6. Auflage (Online-Version) wird auch kein Wort mehr darüber verloren. ;)

Marco
 
Hi,

das ist offensichtlich das, was das OneJar-Tool macht. Ich habe es getestet, es funktioniert wunderbar.

Gruß
 
Zurück