Переменная оболочки и системное свойство JVM — это разные входные данные конфигурации. Экспорт http_proxy для curl не устанавливает http.proxyHost внутри клиента Java URLConnection.

Для JVM, у которой участвующие HTTP-соединения должны использовать фиксированный маршрут, аргументы запуска могут сделать выбор явным:

java -Dhttp.proxyHost=203.0.113.10 -Dhttp.proxyPort=8080 \
     -Dhttps.proxyHost=203.0.113.10 -Dhttps.proxyPort=8080 \
     -jar application.jar

Конечная точка приведена для примера; публичные HTTP-кандидаты из списка HTTP-прокси могут заполнить эти поля, если приложение допускает такой маршрут. Свойство хоста принимает имя хоста или IP-адрес, а порт указывается отдельно. Это не полный URL прокси.

Аутентификация и правила обхода требуют собственной конфигурации. Не делайте вывод, что недокументированное свойство http.proxyPassword работает только потому, что оно есть в старом примере. Обратитесь к документированному API аутентификации и сетевым свойствам вашей JDK.

Это относится к участвующим сетевым путям Java. Библиотека с независимо настроенным HTTP-клиентом может следовать другой политике. Определите этого клиента, прежде чем тратить время на перевод каждой переменной оболочки в аргумент JVM.

Похожие статьи