2013-10-14 121 views
1

我想從我的Java程序中的wget下載一個來自FTP服務器的XML文件。 我必須等到它完成下載。wget文件下載ftp waitfor()掛起

String command = "WGET -O " 
    +props.getProperty("xmlFolder")+""+ 
    + rs.getString("software") 
    + ".xml ftp://"+props.getProperty("ftpUser") 
    +":"+props.getProperty("ftpPasswort")+"@"+rs.getString("xmlPfad"); 

System.out.println(command); 
Process p = Runtime.getRuntime().exec(command); 

p.waitFor(); 
System.out.println("downloaded!"); 

沒有它完美的waitfor(),但後2-3 MB這種功能,它stucks下載。有什麼建議麼?

+0

預期的下載大小是多少? – Fildor

+0

現在最大尺寸約爲6mb。但在未來它可能會更多一點。 –

+0

它不會拋出任何異常? – Fildor

回答

3

您是否嘗試過使用wget的--quiet選項?

編輯1:

管道的寫入端(子進程)可能已滿。

編輯2:

從的openjdk-6-SRC-b20-21_jun_2010

在JDK/SRC/solaris的/天然的/爪哇/郎/ UNIXProcess_md.c(至少對於UNIX系統),我們可以看到Java如何啓動新的子進程以及它如何使用pipe將stdout和stderr從子進程(wget)重定向到父進程(Java)

+0

這個工程!謝謝 ;) –