# jar File im jar File



## Tom2000 (27. Mai 2008)

Ich versuche schon seit einiger Zeit - leider ohne Erfolg - ein jar-File in ein anderes jar-File zu packen, sodass es auch funktioniert. Von NetBeans wird im dist-Verzeichnis die folgende Struktur vorgegeben:

-+ MyClass.jar
 + Readme.txt
 + lib
     +- swing-layout-1.0.3.jar
     +- beansbinding-1.2.1.jar

Das alles möchte ich in ein einzelnes jar-File packen, sodass beim Start die Klasse MyClass gestartet wird.

In der FAQ gibt es zwar eine Beschreibung, dass dazu die jar-Files ausgepackt werden sollen und dann nur die class-Files neu verpackt werden, aber es steht dort auch beschrieben, dass es direkt möglich ist, das jar-File hineinzupacken, sodass es funktioniert, aber darauf wird leider nicht näher eingegangen.

Was muss also ins Manifest geschrieben werden, damit die Klasse MyClass (zu finden in MyClass.jar) die benötigten Klassen in swing-layout-1.0.3.jar bzw. beansbinding-1.2.1.jar findet?

vielen Dank im Voraus

Tom


----------



## Wildcard (27. Mai 2008)

Jar in Jar funktioniert nicht.


----------



## L-ectron-X (27. Mai 2008)

Tom2000 hat gesagt.:
			
		

> aber es steht dort auch beschrieben, dass es direkt möglich ist, das jar-File hineinzupacken, sodass es funktioniert, aber darauf wird leider nicht näher eingegangen.


Die Stelle der FAQ bitte mal zitieren und den Link dorthin posten, das müsste dann korrigiert werden.


----------



## Tom2000 (17. Jul 2008)

->FAQ
--> Spezialthemen
---> Jar-Archive ineinander packen 

"Also das man ein Jar File einfach reinkopiert und dann sagt man lässt den Classpath drauf zeigen funktioniert nicht (vielleicht gehts irgendwie, aber das will ich nicht näher behandeln)."

Wenn es wirklich keine Möglichkeit gibt, dann gibt es nichts, das näher behandelt werden könnte und der Teil in Klammern kann ersatzlos gestrichen werden.

viele Grüße

Tom


----------



## Wolfgang Lenhard (17. Jul 2008)

Nimm OneJar oder unter Eclipse FatJar. Damit geht geht es.


----------



## L-ectron-X (18. Jul 2008)

Wolfgang Lenhard hat gesagt.:
			
		

> Nimm OneJar oder unter Eclipse FatJar. Damit geht geht es.


OneJar oder FatJat machen auch nichts anderes, als die Jar-Dateien zu entpacken und die Packages dem eigenen Jar-File hinzuzufügen. In der FAQ ist beschrieben, wie man genau das per Hand macht.

Nochmal: Eine Jar-Datei in einer Jar-Datei funktioniert nicht.
Daher korrigiere ich mal den FAQ-Beitrag.


----------



## Wolfgang Lenhard (18. Jul 2008)

Hi L-ectron-X,
ne, das ist nicht ganz korrekt. Bei OneJar bleiben die Jars als Ganzes in das Jar eingebettet. Das ist genau das Anliegen von OneJar.


```
One-JAR uses a classloader which knows how to load classes and resources from
 Jar files inside a Jar file. To help provide some structure to the classloading process, the
 One-JAR JarClassLoader looks for a main program inside a main directory in the Jar file,
 and looks for supporting Jar files inside a lib directory. Here is what a candidate Jar file
 would look like set up to run under One-JAR:

jarname.jar
| /META-INF
| | MANIFEST.MF
| | | Main-Class: com.simontuffs.onejar.Boot
| | | One-Jar-Main-Class: com.mydomain.mypackage.Main
| /main
| | main.jar
| | | com.mydomain.mypackage.Main.class
| /lib
| | commons-logging.jar
| /com.simontuffs.onejar
| | Boot.class
| | etc.
|
```
 (http://one-jar.sourceforge.net/index.php?page=introduction&file=opening)


----------



## L-ectron-X (18. Jul 2008)

OK, danke für die Berichtigung.


----------

