# Jar-erstellen und verschiedene Jars einbinden.



## AKST (28. September 2004)

Hallo Leute,

ich habe in eclipse (ant-Plugin) eine build.xml erstellt welche mir aus meinem Projekt ein JAR erstellen soll. hier mal der Code:

```
<project default="createJar">
   <target name="createJar">
      <jar destfile="start.jar" basedir="bin" update="yes">
         <manifest>
	     <attribute name="Main-Class" value="de.ak.geburtstag.StartKlasse"/>	
         </manifest>
      </jar>
   </target>
</project>
```

Soweit funktioniert das auch. Nur ist es so, dass ich im Ordner: "\src\de\ak\geburtstag" 
zwei jar-Dateien namens "jcalendar.jar" und "firebirdsql-full.jar" habe welche vom Programm benötig werden.
Wie kann ich diese beiden Jar's in meine JAR-Datei einbinden?
Ich möchte die zwei genannten JAR's nicht entpacken, sondern so einbinden. 

P.S. Könnt ihr mir auch ein gutes Tutorial empfehlen?


----------



## Thomas Darimont (29. September 2004)

Hallo!

Bau dir einen Eigenen ClassLoader ...

http://www.tutorials.de/forum/showthread.php?threadid=171021&highlight=JarEntry

Gruß Tom


----------



## AKST (29. September 2004)

Hallo Thomas,

so geht es warscheinlich auch, aber ich möchte doch lieber die Jars einbinden, bzw. in ant referenzieren (weiss aber noch nicht wie das geht).


----------



## AKST (1. Oktober 2004)

So funktioniert es auch mit dem Referenzieren externer Jar's in Ant. Einfach im eclipse-Projekt eine build.xml erstellen und folgenden Code eingeben:


```
<project default="createJar">
   <target name="createJar">
      <property name="app.cp" value="lib/firebirdsql-full.jar lib/jcalendar.jar ."/>   
      <jar destfile="start.jar" basedir="bin" update="yes">
         <manifest>
          <attribute name="Main-Class" value="de.ak.geburtstag.StartKlasse"/>
           <attribute name="Class-Path" value="${app.cp}"/>   
         </manifest>
      </jar>
   </target>
</project>
```


Meine von Ant erzeugte jar-Datei "start.jar" kann in ein beliebigen Verzeichnis kopiert werden, wobei in diesem Verzeichnis ein Unterverzeichnis namens
"lib" vorhanden sein muss. Da liegen dann die beiden verwendeten Jar-Dateien.

Gruß


----------



## hankenberge (12. Oktober 2004)

hey das hat super geklappt....
danke


----------



## hankenberge (21. Oktober 2004)

Ich habe die Lösung noch erweitert.
Es ist möglich eine einzige ausführbare Datei zu haben, in der die externen jars mit eingebunden sind.
Das ant-File bleibt gleich, das interessant ist, die ex-jars sofort nach start des programmes an den ort in dem ant-file zu entpacken. siehe Beispiel von Thomas
http://www.tutorials.de/forum/showthread.php?t=168094

damit hat der anwender nur eine datei, ers bei der ausführung werden die benötigen jars extrahiert. das ist übersichtlicher als zusätzliche ordner immer mitzuschleppen....


----------



## Thomas Darimont (22. Oktober 2004)

Hallo!

Damit dass aber dann vernünftig läuft muss man aber unter Umständen denn Classpath ZUR LAUFZEIT um die gerade entpackten jars erweitern.

Wie das geht steht hier:
http://forum.java.sun.com/thread.jsp?forum=32&thread=300557&message=1961099

Gruß Tom


----------



## Polychrome (16. November 2008)

Hi Leute!

Diese Thema hat ja nun doch schon ein paar Jährchen auf dem buckel, nichts desto trotz möchte ich an dieser Stelle doch mal sagen: 

DANKEDANKEDANKEDANKEDANKEDANKEDANKE! 

Seit ein paar Monden versuche ich eine JAR zu erstellen in der nebst etlichen icons auch weitere jar´s referenziert werden.. Das mit den Icons klappt ja auch wunderbar wenn man sie neben der jar in einen entsprechenden Ordner legt; aber die Geschichte mit den externen jar`s.. (jdbc4.jar, iText.bla.jar, jfreechart.bla.jar und jcommon-bla.jar)...zum verzweifeln!! Egal was ich versucht hab..
 ABER: JUHUUU! Mit dem Ant-builder klappt das *Dankbar verneig*

Hab ja hier in diesem Forum schon öfter Hilfe zu Problemen gefunden, aber ich freu mich grade so das die Sache endlich t das ich mich einfach registrieren musste um danke sagen zu können! Weiter so!

Grüße, Polychrome


----------

