Передайте процесу 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. Ці зміни діють на процеси, які цей будівник запустить пізніше; вони не оновлюють батьківський термінал або інший будівник. Перевірте успадковані змінні обходу, якщо curl усе ще йде напряму. Для публічного маршруту завантаження HTTP виберіть кінцеву точку дочірнього процесу зі списку HTTP-проксі.
Приклад успадковує стандартні потоки. Дочекайтеся дочірнього процесу, обробіть його код виходу й збережіть політику скасування застосунку після start().
Системна властивість Java http.proxyHost належить задіяному мережевому коду Java. Curl використовує власні опції та середовище. Якщо дочірній процес — інша програма Java, передайте їй потрібні аргументи -D перед головним класом або -jar; змінна середовища з назвою лише http.proxyHost не задає цю властивість.