Как передать Свойства для издавания неприятный звук от Powershell?

Я использовал Powershell-1.0 для потребностей командной строки некоторое время вместо cmd.exe. К сожалению, существуют все еще некоторые протесты при использовании Java. Я должен передать свойство банке, как этот:

java -jar -Duser.language=en any.jar

Эта строка хорошо работает в cmd.exe, но не в Powershell, поскольку это ищет другую банку: Неспособный к доступу jarfile пользователь language=en

Используя кавычки не помогает.

Действительно ли это выполнимо в Powershell-1.0, или я пропускаю что-то в Java?

Заранее спасибо,

С уважением,

jgran

13
задан halfer 1 November 2019 в 20:43
поделиться

2 ответа

Взгляните на мой ответ на этот вопрос . Обратите внимание, как вы можете использовать echoargs.exe для диагностики подобных проблем. Скорее всего, исправление будет заключаться в цитировании параметра, например:

java -jar "-Duser.language=en" any.jar

Вы можете проверить это с помощью echoargs (из Расширения сообщества PowerShell ):

echoargs -jar "-Duser.language=en" any.jar
Arg 0 is <-jar>
Arg 1 is <-Duser.language=en>
Arg 2 is <any.jar>
21
ответ дан 1 December 2019 в 20:11
поделиться

Попробуйте вместо этого запустить следующий шаблон:

java -Duser.language=en -jar any.jar

Предполагается, что user.language является системным свойством. Если вы имели в виду это как аргумент командной строки, измените его на:

java -jar any.jar -Duser.language=en

Я действительно удивлен, что упомянутая вами командная строка вообще работает вне PowerShell (хотя я подтвердил, что у меня она тоже работает нормально, даже в Linux) и также немного странно, что внутри и вне powershell все работает по-разному.

Из java -help :

Usage: java [-options] class [args...]                 
           (to execute a class)                        
   or  java [-options] -jar jarfile [args...]          
           (to execute a jar file)                     
where options include:
...
    -D<name>=<value>
                  set a system property
...

Таким образом, вы всегда должны помещать имя файла JAR непосредственно после -jar параметр командной строки и любые параметры JVM (например, установка свойств системы с помощью -D ) ранее.

2
ответ дан 1 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: