Java سے شروع کردہ curl عمل کو اس کے پراکسی متغیرات دیں
ڈاؤن لوڈر کے لیے ProcessBuilder.environment سیٹ کریں؛ JVM کی -D پراکسی خصوصیات curl کے اختیارات نہیں بنتیں۔
ڈاؤن لوڈر کے ان پٹ اس کے 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();ماحول کا نقشہ Java عمل کے ماحول کی نقل کے طور پر شروع ہوتا ہے۔ یہ تبدیلیاں اس بلڈر کے بعد شروع کیے گئے عملوں پر لاگو ہوتی ہیں؛ یہ والدین ٹرمینل یا کسی دوسرے بلڈر کو اپ ڈیٹ نہیں کرتیں۔ اگر curl اب بھی براہ راست جاتا ہے تو وراثت میں ملنے والے بائی پاس متغیرات چیک کریں۔ عوامی HTTP ڈاؤن لوڈ راستے کے لیے، HTTP پراکسی فہرست سے چائلڈ کا اینڈ پوائنٹ منتخب کریں۔
مثال معیاری اسٹریمز وراثت میں لیتی ہے۔ چائلڈ کا انتظار کریں، اس کی ایگزٹ حالت سنبھالیں اور start() کے بعد بھی ایپلیکیشن کی منسوخی کی پالیسی برقرار رکھیں۔
Java کی http.proxyHost سسٹم خصوصیت شریک Java نیٹ ورکنگ کوڈ کی ہے۔ Curl اپنے اختیارات اور ماحول استعمال کرتا ہے۔ اگر چائلڈ کوئی دوسرا Java پروگرام ہے تو اسے درکار -D دلائل مرکزی کلاس سے پہلے یا -jar دیں؛ صرف http.proxyHost نام کا ماحول متغیر وہ خصوصیت سیٹ نہیں کرتا۔