Khi cố gắng gọi lệnh git, được thực hiện đúng trong dòng lệnh thông thường, từ Java, tôi nhận được kết quả lạ: nó không xuất được kết quả nào.Gọi git từ Java với dòng lệnh
Ví dụ, nếu tôi cố gắng chạy này:
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);
}
}
}
tôi nhận được không có đầu ra (trừ lệnh, mà được in trước đó). Có vẻ như git vẫn đang tải xuống thứ gì đó, nhưng không nói với tôi. Có thể nó sẽ xuất tất cả mọi thứ sau khi nó hoàn thành (vì vậy đầu ra cuộc gọi git bình thường, bao nhiêu đã sẵn sàng, và thay đổi dòng này mọi lúc - có thể vì điều này BufferedReader không thể đọc dòng đã hoàn thành và do đó không xuất nó).
Có cách nào khác để làm việc này không?
Cảm ơn, StreamGobbler đã làm điều đó. –