# Ant ausführen



## lernen.2007 (22. April 2008)

Hallo,

ich will von einer Java Anwendung ein ant Target ausführen. Ich habe folgendes:


```
try
      {
         Process p = java.lang.Runtime.getRuntime().exec("ant -help", null, new File("D:\\workspace\\apache-ant-1.6.5\\bin"));
         
      }
      catch (IOException e)
      {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
```

aber bekomme immer folgende exception:

```
java.io.IOException: CreateProcess: ant error=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
    at java.lang.Runtime.exec(Runtime.java:591)
    at java.lang.Runtime.exec(Runtime.java:429)
    at testAnt.RunAntTarget.main(RunAntTarget.java:12)
```

Woran kann es denn liegen? Was mache ich falsch?


----------



## zerix (22. April 2008)

Hallo,


du musst entweder die Datei mit Dateiendung angeben oder das ganze über die Eingabeaufforderung starten.
Nimm lieber den ProcessBuilder.

```
ProcessBuilder builder = new ProcessBuilder(new String[]{"ant.bat","-help"});
      builder.directory( new File("D:\\workspace\\apache-ant-1.6.5\\bin"));
      Process process = builder.start();
```



```
ProcessBuilder builder = new ProcessBuilder(new String[]{"cmd","/c", "ant","-help"});
      builder.directory( new File("D:\\workspace\\apache-ant-1.6.5\\bin"));
      Process process = builder.start();
```


MFG

Sascha


----------



## lernen.2007 (22. April 2008)

Hallo,

ich bekomme immer noch folgende Fehlermeldung:


```
java.io.IOException: CreateProcess: ant -help error=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
    at testAnt.RunAntTarget.main(RunAntTarget.java:14)
```


----------



## lernen.2007 (22. April 2008)

Ich habe die zweite Variante genommen. Jetzt bekomme ich keine Fehlermeldung mehr. Aber was ich nicht verstehe ist, wo sehe ich jetzt Fehlermeldungen bzw. kann ich es in eclipse sehen oder muss ich class File ausführen?


----------



## zerix (22. April 2008)

Meinst du die Meldungen von ant?


```
ProcessBuilder builder = new ProcessBuilder(new String[]{"cmd","/c", "ant","-help"});
      builder.directory( new File("C:/Programme/apache-ant-1.6.5/bin"));
      Process process = builder.start();
      InputStream is = process.getInputStream();
      int i;
      while((i = is.read()) != -1){
        
        System.out.print((char)i);
        
      }
```

Es gibt dann auch noch einen ErrorStream und einen OutputStream.

MFG

Sascha


----------



## lernen.2007 (22. April 2008)

Hallo,

ja das wollte ich haben.


----------



## lernen.2007 (22. April 2008)

Ich benutze java version 1.5 warum bekomme ich folgende Fehlermeldung:

Unable to locate tools.jar. Expected to find it in C:\Programme\Java\j2re1.4.2_05\lib\tools.jar
Buildfile: build.xml does not exist!


----------



## zerix (22. April 2008)

Auf was ist denn bei dir die Umgebungsvariable JAVA_HOME gesetzt?

MFG

Sascha


----------



## lernen.2007 (22. April 2008)

Hallo,

ich schaue mal nach.^^^^


----------



## lernen.2007 (22. April 2008)

Buildfile: build.xml does not exist!

Obwohl ich auch die vollständigen Pfad zu build.xml angegeben habe, kann es nicht finden. Wo sucht eigentlich java nach? Etwa in das Verzeichnis wo ant ist?


----------



## lernen.2007 (24. April 2008)

Ich habe hinbekommen, dass mein ant läuft. Aber das Problem ist, mein target läuft bis nicht zu Ende sondern hört frühzeitig auf. Ich weiß nicht woran es liegt? Ich brauche auch noch eine Möglichkeit, dass mein ant auch solaris laufen sollte. Ich meine wegen cmd Befehl


----------



## zerix (7. Mai 2008)

Besteht das Problem noch?

MFG

Sascha


----------

