# Jar-Datei mit ant erstellen und zusätzliche Jars einbinden



## ak (28. Sep 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?[/quote]


----------



## nollario (29. Sep 2004)

du musst einen manifest eintrag anlegen, in dem du die libraries referenzierst:


```
<manifest>
                <attribute name="Main-Class" value="de.forum.MainClass"/>
                <attribute name="Class-Path" value="${app.cp}"/>
            </manifest>
```

gutes tutorial kenne ich nicht, nutze immer die apache seite, um die verschiedenen tasks etc nachzuschlagen. sind ja auch mit beispielen gefüllt:

http://ant.apache.org/


----------



## ak (29. Sep 2004)

Hallo nollario,

könntest du  mir mal bitte ein Beispiel nennen wie ich die libraries referenzieren kann?


----------



## nollario (30. Sep 2004)

nimm das beispiel oben... mit dem manifest... dazu könntest du dann den angegebenen classpath wie folgt als property definieren (muss natürlich vor dem manifest task geschehen):


```
<property name="app.cp" value="lib/jconn2.jar lib/log4j.jar ."/>
```

nun steh im classpath eine referenz auf die jconn und log4j library, wenn dein jar file gestartet wird


----------



## ak (30. Sep 2004)

Danke für den Tip, ich schaue mir das heut abend mal an.


----------



## ak (30. Sep 2004)

Hallo nollario,

danke für deine Hilfe, es klappt jetzt alles. Hier mal der komplette Code:


```
<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 jar-Datei "start.jar" liegt in einem beliebigen Verzeichnis wobei in diesem Verzeichnis ein Unterverzeichnis namens 
"lib" sein muss. Da liegen dann die beiden verwendeten Jar-Dateien.

Gruß


----------

