차이는 파워 쉘 대 CMD를 통해 자바 명령을 실행할 때 - 기간 의한 "."

어떤 조치 :

나는 어떤 환경에서 지정하는 HTTP 프록시를 필요로 예를 들어 Java 응용 프로그램을 가지고있다.

온 제안 내가 인수를 사용하여이 작업을 실행하려고 할 때 오라클 웹 사이트 CMD (명령 프롬프트)에서 잘 작동합니다.

E:\>java -Dhttp.proxyHost=http://proxy.example.com -jar myJAR.jar
System properties...
[...]
http.proxyHost=http://proxy.example.com

당신은 응용 프로그램이 실행 된 것을 볼 수 있고, 시스템 등록 정보를 나열 할 때 올바르게 수신 있어요 http.proxyHost속성을.

내가 파워 쉘에서 이것을 실행할 때, 나는 다음을 얻을 :

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에서 잘 작동합니다.

누구든지이 문제를하시기 바랍니다 설명 할 수 있습니까?

mklement0 :

불행하게도, 당신이보고있는 버그 PowerShell의를 여전히 V7.0의로 제시한다 :

매개 변수처럼 보이는 뭔가 PowerShell을에가 로 고장 이 개 상기 인수 .인수는 단순히한다하더라도 - (기간) 를 통해 전달 된 외부 프로그램이라고합니다 주어진 - 볼 이 GitHub의 문제 ; 귀하의 경우, -Dhttp.proxyHost=http://proxy.example.com로 예기치 않게 전달 -Dhttp .proxyHost=http://proxy.example.com합니다 (이전 공간주의 .)

두 가지가 있습니다 해결 방법 :

  • 견적. 사용하여 문자를 '.':

    java -Dhttp'.'proxyHost=http://proxy.example.com -jar myJAR.jar
    
  • 같이 다른 방법으로, 세르게이 슈의 대답은 , 사용 --%정지 구문 분석 기호 , PowerShell에서의 일반적인 구문 분석 규칙을 적용하지 않고 통해 모든 인수를 전달하는 PowerShell을 강제로.

    • 주의 : 의 사용은 --%주요 부작용 , 사용하기 특히 수없는 변수 참조 명령 및 적용 할 수 없다는에서 리디렉션 - 볼 이 답변 세부 사항을.

추천

출처http://43.154.161.224:23101/article/api/json?id=19195&siteId=1