Tutaj przykład pokaz Processbuilder że wykonuje zawinięte. Ta sekcja kodu działa dobrze w moim środowisku. Właściwie wykonasz go bez żadnych problemów. Program pobiera obraz z sieci i zapisuje jako plik jpg. Plik jpg jest zapisywany w ścieżce "/ home/twoja_nazwa_użytkownika/Obrazki".
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
public class ProcessBuilderTest {
public static void main(String arg[]) throws IOException {
ProcessBuilder pb = new ProcessBuilder(
"curl",
"-s",
"http://static.tumblr.com/cszmzik/RUTlyrplz/the-simpsons-season-22-episode-13-the-blue-and-the-gray.jpg ");
pb.directory(new File("/home/your_user_name/Pictures"));
pb.redirectErrorStream(true);
Process p = pb.start();
InputStream is = p.getInputStream();
FileOutputStream outputStream = new FileOutputStream(
"/home/your_user_name/Pictures/simpson_download.jpg");
BufferedInputStream bis = new BufferedInputStream(is);
byte[] bytes = new byte[100];
int numberByteReaded;
while ((numberByteReaded = bis.read(bytes, 0, 100)) != -1) {
outputStream.write(bytes, 0, numberByteReaded);
Arrays.fill(bytes, (byte) 0);
}
outputStream.flush();
outputStream.close();
}
}
W razie pytań. Jest to najbardziej bezpośrednio i intuicyjnie odwzorowanie curl na kod Java, gdy używa się Processbuilder. Wystarczy napisać jak:
curl -s -d user.name=xxxx \
-d file=yyyy \
-d arg=-v \
'htttp://localhost:zzzz/templeton/v1/pig'
stać
ProcessBuilder pb = new ProcessBuilder("-s","-d user.name=xxxx ","-d `file=yyyy","-d rg=-v" ,"htttp://localhost:zzzz/templeton/v1/pig");`
Spójrz na 'http: // docs.oracle.com/JavaSE/7/docs/api/java/lang/ProcessBuilder.html' lub wziąć [tutaj] (http://curl.haxx.se/libcurl/java/) – Jens
Istnieje wiele sposobów na wysłanie postu HTTP z Javą, wystarczy google, tutaj jest jedna z odpowiedzi na SO: http://stackoverflow.com/questions/4205980/java-sending-http-parameters-via-post-method-easily – udalmik