Ant ausführen

lernen.2007

Erfahrenes Mitglied
Hallo,

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

Java:
 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:
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?
 
Hallo,


du musst entweder die Datei mit Dateiendung angeben oder das ganze über die Eingabeaufforderung starten.
Nimm lieber den ProcessBuilder.
Code:
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();


Code:
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
 
Hallo,

ich bekomme immer noch folgende Fehlermeldung:

Java:
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)
 
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?
 
Meinst du die Meldungen von ant?

Code:
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
 
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!
 
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?
 
Zurück