2014-04-30 17 views
6

Wenn ich versuche, einen Git-Befehl aufzurufen, der in der normalen Befehlszeile von Java korrekt ausgeführt wird, bekomme ich ein seltsames Ergebnis: Es gibt nichts aus.Aufruf von git aus Java mit der Befehlszeile

Zum Beispiel, wenn ich versuche, dies auszuführen:

public class GitTest { 
    public static void main(String args[]) throws IOException{ 
     String command = "git clone http://git-wip-us.apache.org/repos/asf/accumulo.git"; 
     Process p = Runtime.getRuntime().exec(command); 
     BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line; 
     String text = command + "\n"; 
     System.out.println(text); 
     while ((line = input.readLine()) != null) { 
      text += line; 
      System.out.println("Line: " + line); 
     } 
    } 
} 

bekomme ich keine Ausgabe (außer für den Befehl, der vor gedruckt wird). Es scheint, als ob Git noch etwas herunterlädt, aber es mir nicht erzählt. Vielleicht würde es alles ausgeben, nachdem es fertig ist (also der normale git-Aufruf gibt aus, wie viel fertig ist und ändert diese Zeile jedes Mal - vielleicht deshalb kann der BufferedReader eine fertige Zeile nicht lesen und daher nicht ausgeben).

Gibt es eine Problemumgehung, damit das funktioniert?

Antwort

0

Wenn Sie unbedingt die Befehlszeile git ausführen müssen, können Sie die Verwendung von JavaGit in Betracht ziehen (es kann ein bisschen veraltet sein). Die derzeit empfohlene Methode zur Verwaltung von Git-Repositorys in Java besteht jedoch in der Verwendung von JGit - einer reinen Java-Implementierung von Git-Speicher. Eclipse EGit Plugin ist auf JGit

Verwandte Themen