У меня есть пример Java приложения, которое требует, чтобы в некоторых средах был указан прокси-сервер HTTP.
Когда я пытаюсь запустить его, используя аргумент, предложенный на веб-сайте Oracle в CMD (командная строка) работает нормально.
E:\>java -Dhttp.proxyHost=http://proxy.example.com -jar myJAR.jar
System properties...
[...]
http.proxyHost=http://proxy.example.com
Вы видите, что приложение было запущено, и при выводе списка системных свойств оно правильно получило свойство http.proxyHost
.
Однако, когда я запускаю это из Powershell, я получаю следующее:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS E:\> java -Dhttp.proxyHost=http://proxy.example.com -jar myJAR.jar
Error: Could not find or load main class .proxyHost=http:..proxy.example.com
Здесь кажется, что вокруг первого "" произошел какой-то разрыв. и с тех пор он воспринимает все остальное как еще один аргумент.
Если аргумент указан в кавычках - например, -D"http.proxyHost"=http://proxy.example.com
- тогда он отлично работает в Powershell.
Может кто-нибудь объяснить это поведение, пожалуйста?