log.info("同步整個資源目錄");
// 同步整個資源目錄
List<Process> processes = new LinkedList<Process>();
//獲取資源服務器
List<ResourceServer> servers = getResourceServer();
for (ResourceServer server : servers)
{
String[] command = buildCommand(".", server);
Process process = Runtime.getRuntime().exec(command, null, new File(resourcePath));
processes.add(process);
}
for (Process p : processes)
{
p.waitFor();
}
log.info("所有資源同步完成");
在java中調用操作系統的程序時,可以使用java.lang.Runtime.getRuntime().exec() 來實現,但是這個方法在調用命令後就直接返回當前線程了;程序設計時,有時候需要在等待調用的系統程序完成操作後,當前線程才能做下一步操作,此時可以用類Process的方法waitFor()來實現,它會阻塞當先線程直至調用程序運行結束。