Dale sus variables de proxy a un proceso curl lanzado por Java
Configura ProcessBuilder.environment para el descargador; las propiedades de proxy -D de la JVM no se convierten en opciones de curl.
Configura las entradas del descargador en su 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();El mapa de entorno empieza como una copia del entorno del proceso Java. Estos cambios se aplican a procesos que este constructor inicie después; no actualizan la terminal principal ni otro constructor. Comprueba las variables de omisión heredadas si curl sigue yendo directo. Para una ruta de descarga HTTP pública, elige el punto de conexión del hijo en la lista de proxies HTTP.
El ejemplo hereda los flujos estándar. Espera al hijo, gestiona su estado de salida y conserva la política de cancelación de la aplicación después de start().
La propiedad de sistema http.proxyHost de Java pertenece al código de red de Java que participa. Curl usa sus propias opciones y su propio entorno. Si el hijo es otro programa Java, pásale los argumentos -D que necesita antes de la clase principal o -jar; una variable de entorno que solo se llame http.proxyHost no define esa propiedad.