本当に SourceForges の ToS に違反したい場合は、これが役立つかもしれません。
必要に応じて、wget.exe が必要です。
ProcessBuilder pb = new ProcessBuilder("wget.exe","http://wurfl.cvs.sourceforge.net/viewvc/wurfl/?view=tar", "no-proxy");
Process p = pb.start();
これは、wget.exe がクラス ファイルと同じディレクトリにある限り機能します。
ファイルが存在するかどうかを確認することもできます。その場合、次の行の中で何かを行います。
ProcessBuilder pb = new ProcessBuilder("wget.exe","http://wurfl.cvs.sourceforge.net/viewvc/wurfl/?view=tar", "no-proxy");
Process p = pb.start();
int exitValue = p.waitFor();
BufferedReader reader;
// System.out.println("Exit Value" + exitValue);
if (exitValue == 0) {
reader = new BufferedReader(new InputStreamReader(p
.getInputStream()));
} else {
reader = new BufferedReader(new InputStreamReader(p
.getErrorStream()));
}
StringBuffer sb = new StringBuffer();
String temp = reader.readLine();
while (temp != null) {
sb.append(temp);
temp = reader.readLine();
}
reader.close();
System.out.println(sb.toString());
if(sb.toString().indexOf("404") != -1) {
//means that the file does not exist
System.out.println("File does not exist, or access is denied");
} else {
if(sb.toString().indexOf("200") != -1) {
//file exists, download it
System.out.println("File exists, downloading...");
ProcessBuilder pb = new ProcessBuilder("wget.exe","http://wurfl.cvs.sourceforge.net/viewvc/wurfl/?view=tar", "no-proxy");
Process p = pb.start();
}
ただし、自分のコードをスクレイピングする場合を除き、SourceForge をスクレイピングしないことをお勧めします (アップデーター プログラムとして 1 回実行しました)。もしそうなら、そして私の例が役に立ちますが、親切に私に言及しないでください. =]
私が助けてくれることを願っています!