На вашей стороне Java я рекомендую создать два дополнительных потока для использования потоков p.getInputStream () и p.getErrorStream () вашего Процесса p.Я думаю, что это помогает rsync
чувствовать себя более любимым и заботливым.
Примерно так (я игнорирую IOException для простоты - вам придется иметь с ними дело!):
final Process p = Runtime.exec("rsync"); // however you do this...
Runnable consumeIn = new Runnable() {
public void run() {
InputStream in = p.getInputStream();
InputStreamReader isr = new InputStreamReader(in, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ( (line = br.readLine()) != null ) {
// Throw away the data? Or do something with it if you like!
}
}
};
Runnable consumeErr = new Runnable() {
public void run() {
InputStream in = p.getErrorStream();
// etc... (very similar to consumeIn)
}
};
new Thread(consumeIn).start();
new Thread(consumeErr).start();