תנו לתהליך curl שהושק מ-Java את משתני הפרוקסי שלו
הגדירו ProcessBuilder.environment עבור המוריד; מאפייני פרוקסי -D של ה-JVM אינם הופכים לאפשרויות של 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. השינויים האלה חלים על תהליכים שה-builder הזה מפעיל מאוחר יותר; הם אינם מעדכנים את המסוף האב או builder אחר. בדקו משתני עקיפה שעברו בירושה אם curl עדיין יוצא ישירות. לנתיב הורדת HTTP ציבורי, בחרו את נקודת הקצה של הבן מתוך רשימת שרתי פרוקסי HTTP.
הדוגמה יורשת את הזרמים הסטנדרטיים. המתינו לבן, טפלו במצב היציאה שלו ושמרו על מדיניות הביטול של היישום לאחר start().
מאפיין המערכת http.proxyHost של Java שייך לקוד הרשת של Java שמשתתף. Curl משתמש באפשרויות ובסביבה משלו. אם הבן הוא תוכנית Java אחרת, ספקו לו את ארגומנטי -D הדרושים לפני המחלקה הראשית או -jar; משתנה סביבה שנקרא רק http.proxyHost אינו מגדיר את המאפיין הזה.