Defina as entradas do descarregador no seu 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();

O mapa de ambiente começa como uma cópia do ambiente do processo Java. Estas alterações aplicam-se a processos iniciados mais tarde por este construtor; não atualizam o terminal principal nem outro construtor. Verifique as variáveis de contorno herdadas se o curl continuar a ir diretamente. Para uma rota de descarga HTTP pública, escolha o ponto final do filho na lista de proxies HTTP.

O exemplo herda os fluxos padrão. Aguarde o filho, trate o seu estado de saída e mantenha a política de cancelamento da aplicação após start().

A propriedade de sistema http.proxyHost do Java pertence ao código de rede Java que participa. O curl usa as suas próprias opções e o seu próprio ambiente. Se o filho for outro programa Java, forneça-lhe os argumentos -D necessários antes da classe principal ou -jar; uma variável de ambiente apenas chamada http.proxyHost não define essa propriedade.

Artigos relacionados