ant mit Java aufrufen

JavaMann

Grünschnabel
Hallo Profis,
ich möchte aus meiner Jar Datei ant aufrufen. In diesem Forum habe ich auch schon eine Lösung gefunden eine bat datei zu starten, funktioniert auch super.
Bloß wie kann ich die verschiedenen Targets aufrufen. Ich möchte nicht für jedes Target eine bat Datei und build.xml schreiben.

Hat jemand eine Idee?
 
Das habe ich natürlich auch schon Probiert. Hat leider nicht funktioniert. Er schmeißt mir dan diese Exception:
java.io.IOException: CreateProcess: "c:\myproject\build.bat prepare" error=2

Führe ich das unter Start - Ausführen aus --> funktioniert es.
Der Pfad stimmt, das Statement ist nicht zu lang und die runtime (1.5.0_04) stimmt auch. Ich weiß nicht woran es liegt.
 
Zeig mal bitte deinen Code.

Du darfst die bat (warum überhaupt ne bat) nicht mit absolutem Pfad aufrufen sondern musst diesen stattdessen als Ausführungsverzeichnis setzen.
 
Das ist mein Code:
Code:
File scripFile = new File("c:\\myproject\\build.bat");
    	 ProcessBuilder processBuilder = new ProcessBuilder("c:\\myproject\\build.bat prepare");
    	 
    	 processBuilder.directory(scripFile.getParentFile());   
    	 Process process = processBuilder.start();        
    	 Scanner scanner = new Scanner(process.getInputStream());      
    	 while(scanner.hasNextLine()){
    		 ausgabe+="\n"+scanner.nextLine();
    	 }
    	 scanner.close();

Beim processBuilder.start(); schmeißt er die Exception das er den Pfad nicht finden kan.
Ich habe es auch noch so probiert:
Code:
    	String[] command = new String[3];
    	command[0] = "cmd ";
    	command[1] = "/c ";
    	command[2] = "c:\\myproject\\build "+target;
    	Runtime.getRuntime().exec(command);
    	Process process = Runtime.getRuntime().exec(command);
Daraufhin bekomme ich folgende Exception:
Der Befehl ""C:\myproject\build prepare" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
 
Hmm klappt noch nicht so ganz. Wenn ich mein Project aus eclipse Starte bekomme ich folgende Fehlermeldung.
java.lang.NoClassDefFoundError: org/apache/tools/ant/Main
Exception in thread "main"

ANT ist dem BuildPath hinzugefügt.

Und wenn ich das Projekt selber baue funktioniert es. (Das heißt ich kann ant aus meiner JAR aurfufen.)
Aber nicht aus jedem Verzeichnis.

Ich weiß es muss ne simple Lösung geben. Aber ich sehe den Wald vor lauter Bäume nicht mehr.
 
Ich versuche es noch mal zu erklären.
Ich habe zwei Programme in Java geschrieben. Jetzt möchte ich das Programm 'A' mit dem anderen Programm 'B' bauen. Dafür verwende ich ant.

Wenn ich das Programm 'B' als JAR starte in einem bestimmten Verzeichnis, kann ich Programm 'A' ohne Probleme bauen und in den JBOSS kopieren.

Wenn ich das Programm 'B' nicht als JAR sondern aus eclipse direkt starte gibt es die folgende Fehlermeldung, die geschmissen wird sobald ich ein ant target aufrufe:
java.lang.NoClassDefFoundError: org/apache/tools/ant/Main

Die ant.jar ist in dem BuildPath des Projektes 'B'. Deswegen verstehe ich es nicht wieso er ANT nicht findet.
 
Zurück