Dajte curl procesu pokrenutom iz Jave njegove proxy varijable
Postavite ProcessBuilder.environment za preuzimač; JVM -D proxy svojstva ne postaju curl opcije.
Postavite ulaze preuzimača na njegov ProcessBuilder:
var command = new ProcessBuilder(
"/usr/bin/curl", "--fail", "--max-time", "30",
"https://downloads.example/data.csv");
var environment = command.environment();
environment.put("http_proxy", "http://proxy.example:8080");
environment.put("https_proxy", "http://proxy.example:8080");
command.inheritIO();
Process child = command.start();Mapa okruženja počinje kao kopija okruženja Java procesa. Ove izmjene važe za kasnije procese koje pokrene ovaj graditelj; one ne ažuriraju roditeljski terminal ni drugi graditelj. Provjerite naslijeđene varijable zaobilaženja ako curl i dalje ide direktno. Za javnu HTTP rutu preuzimanja odaberite krajnju tačku djeteta sa liste HTTP proxyja.
Primjer nasljeđuje standardne tokove. Sačekajte dijete, obradite njegov status izlaza i zadržite politiku otkazivanja aplikacije nakon start().
Java sistemsko svojstvo http.proxyHost pripada učešćem Java mrežnom kodu. Curl koristi vlastite opcije i okruženje. Ako je dijete drugi Java program, dostavite mu potrebne -D argumente prije glavne klase ili -jar; varijabla okruženja koja se samo zove http.proxyHost ne postavlja to svojstvo.