2

Java プログラムでwgetを使用して FTP サーバーから XML ファイルをダウンロードしようとしています。ダウンロードが完了するまで待つ必要があります。

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 がダウンロードされた後にスタックします。助言がありますか?

4

1 に答える 1

3

wget に --quiet オプションを使用しようとしましたか?

編集1:

パイプの書き込み側(子プロセス)がいっぱいになっている可能性があります。

編集2:

openjdk-6-src-b20-21_jun_2010 から

jdk/src/solaris/native/java/lang/UNIXProcess_md.c (少なくとも UNIX システムの場合) では、Java が新しい子プロセスを起動する方法と、パイプを使用して子から stdout と stderr をリダイレクトする方法 (wget) を確認できます。親プロセスへ (Java)

于 2013-10-14T12:57:03.630 に答える