Dajte curl procesu pokrenutom iz Jave njegove proxy varijable
Postavite ProcessBuilder.environment za preuzimatelja; JVM -D proxy svojstva ne postaju curl opcije.
Postavite ulaze preuzimatelja 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();Karta okruženja počinje kao kopija okruženja Java procesa. Ove promjene vrijede za kasnije procese koje pokrene ovaj graditelj; ne ažuriraju roditeljski terminal ni drugi graditelj. Provjerite naslijeđene varijable zaobilaženja ako curl i dalje ide izravno. Za javnu HTTP rutu preuzimanja odaberite krajnju točku djeteta s popisa HTTP proxyja.
Primjer nasljeđuje standardne tokove. Pričekajte dijete, obradite njegov status izlaza i zadržite politiku otkazivanja aplikacije nakon start().
Java sistemsko svojstvo http.proxyHost pripada sudjelujućem Java mrežnom kodu. Curl rabi 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.