# ant findet classpath jars nicht



## vogella (20. Jan 2007)

Hallo,

ich versuche mein Projekt mit ant bauen zu lassen.


```
<?xml version="1.0"?>
<project name="compile" default="run" basedir=".">
	<property name="src" value="src" />
	<property name="build" value="build" />
	<property name="dist" value="dist" />
	<property name="lib" value="lib" />

<target name="compile" >
		
		<echo> Compile the java code </echo>
		<javac srcdir="${src}" destdir="${build}" includes="**/*.java" />
		<classpath>
			<pathelement location="${lib}/"/>
		</classpath>
	</target>
```

Altenativ hatte ich für das Classpath Tag auch probiert:


```
<classpath>
     <pathelement path = "${lib}/log4j-1.2.14.jar:${lib}/itext-1.3.1.jar"/>
</classpath>
```

Mein Verzeichnis sieht so aus:

./
   build.xml
   src/*.java
   build/
   lib/log4j-1.2.14.jar
   lib/itext-1.3.1.jar

ant -v liefert den unten stehenden classpath and dann viele Fehler der Art 
3: package org.apache.log4j does not exist
    [javac] import org.apache.log4j.*;
-

[javac] '-classpath'
    [javac] '
C:\project\build;
C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-antlr.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-apache-bcel.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-apache-bsf.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-apache-log4j.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-apache-oro.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-apache-regexp.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-apache-resolver.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-commons-logging.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-commons-net.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-icontract.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-jai.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-javamail.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-jdepend.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-jmf.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-jsch.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-junit.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-launcher.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-netrexx.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-nodeps.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-starteam.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-stylebook.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-swing.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-trax.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-vaj.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-weblogic.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-xalan1.jar;C:\Program Files\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-xslp.jar;C:\Program Files\eclipse\configuration\org.eclipse.osgi\bundles\10\1\.cp\lib\remoteAnt.jar;C:\Program Files\Java\jdk1.6.0\lib\tools.jar;C:\Program Files\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.2.2.v3235a.jar'

Offensichtlich nicht mein classpath den ich gerne vorgeben würde. 

Was mache ich falsch? 

Viele Grüße, Lars


----------



## vogella (21. Jan 2007)

Kann hier jemand mir einen Tipp geben? Ich werde noch verrückt mit dem Build Skript....


----------



## kama (21. Jan 2007)

Hallo,


```
<javac srcdir="${src}" destdir="${build}" includes="**/*.java" />
      <classpath>
         <pathelement location="${lib}/"/>
      </classpath>
```

Du hast mit "/>" von javac den Bereich für den Java Compiler zugemacht. Der Teil classpath wird hier nicht
mehr beachtet.


```
<javac srcdir="${src}" destdir="${build}" includes="**/*.java">   <-----!!!!! HIER BEACHTEN!!!!!
      <classpath>
         <pathelement location="${lib}/"/>
      </classpath>
</javac>
```
Du solltest das mal in der Form versuchen....


MfG
Karl Heinz Marbaise


----------



## vogella (21. Jan 2007)

Hallo Karl Heinz,

tausend Dank, jetzt geht es. 

Danke noch mal, das hat mich Nerven gekostet. 

Viele Grüße, Lars


----------



## vogella (22. Jan 2007)

Hallo,

noch mal eine Nachfrage, ich habe zwei weitere Targets, eins für jar bauen und eins für ausführen. 

Ob der String beides mal gleich ist ("${jarfile}${DSTAMP}.jar") kommt beim einem Database${DSTAMP}.jar und beim anderen Database20070122.jar heraus. 

Was ist hier falsch?

Viele Grüße, Lars


```
<target name="jar" depends="compile">
		<echo> Creates the jar file </echo>
		<jar destfile="${jarfile}${DSTAMP}.jar" basedir="${build}" includes="**/*.class" manifest="${manifest}" />
	</target>

	<target name="run" depends="init, all">
		<java jar="${jarfile}${DSTAMP}.jar" fork="true" />
	</target>
```


----------



## vogella (22. Jan 2007)

Hat sich erledigt <tstamp/> wurde erst nach dem erste Target gesetzt...


----------

