Передать аргумент JVM с пробелом в командном файле - PullRequest
0 голосов
/ 18 мая 2018

У меня был пакетный скрипт, который выполняет TestRun класс, принимая аргументы jvm, как показано ниже

java -cp "./lib/*;./statoil.jar" -DURI=localhost:8080 -DOWUser=abc -DOWPassword=abc123 -DpipelineName=EDMStatOil -Ddatabase=edm -DproviderName=141Provider -DdestinationName=110EDM -DproviderWellName=Serno Grad com.statoil.rts.test.TestRun 

Но во время выполнения пакетного сценария получала ошибку:

Ошибка: не удалось найти или загрузить основной класс Grad

Я знаю, что он обрабатывает Grad как файл класса.Но как мы можем избежать этой ошибки при передаче аргумента jvm с пробелом?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

попробуйте с escape-символами -DproviderWellName = "\" Серно Град \ ""

0 голосов
/ 18 мая 2018

Java не заботится о наличии пробела в значении аргумента JVM, но терминал разделит -DproviderWellName=Serno Grad на два аргумента командной строки и передаст их в исполняемый файл java.

Вы должны поставитьцитаты вокруг всего аргумента:

java "-DproviderWellName=Serno Grad"
0 голосов
/ 18 мая 2018

В вашем пакетном файле попробуйте сначала установить переменную, а затем передать этот параметр действительной команде следующим образом.

set WellName="Serno Grad"

java -cp "./lib/*;./statoil.jar" -DURI=localhost:8080 -DOWUser=abc -DOWPassword=abc123 -DpipelineName=EDMStatOil -Ddatabase=edm -DproviderName=141Provider -DdestinationName=110EDM -DproviderWellName=%WellName% com.statoil.rts.test.TestRun

ИЛИ

set WellName="Serno Grad"

java -cp "./lib/*;./statoil.jar" -DURI=localhost:8080 -DOWUser=abc -DOWPassword=abc123 -DpipelineName=EDMStatOil -Ddatabase=edm -DproviderName=141Provider -DdestinationName=110EDM -DproviderWellName="%WellName%" com.statoil.rts.test.TestRun

В моей системе любой из них работаетхорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...