run.bat命令行JVM参数未按预期传递

时间:2015-06-10 15:35:58

标签: java batch-file

我试图传递run.bat -Djava.messaging.ServerPeerID = 1,但args' ='被空间取代。因此,传递给Main.java的参数对于java.messaging.ServerPeerID来设置为true ....但它不应该是。主要应该有适当的arg .....

示例代码

set ARGS =
:loop1
if %1= "" goto contiArg
else (
  # my echo here : echo " Args ... %1"
Set ARGS = %ARGS% %1
 Shift
)
Goto loop1

线我的回声线抛出错误我使用双引号,如你所提到的.....

2 个答案:

答案 0 :(得分:0)

=是batch / cmd.exe中的标准分隔符,因此将其作为参数传递的唯一方法是将其用双引号括起来(使用run.bat "-Djava.messaging.ServerPeerID=1")。 java应该能够处理引号但是如果你希望你可以在传递给java时使用%~1来取消引用该参数。

答案 1 :(得分:0)

请在您的脚本中尝试“%*”,以便在不进行处理的情况下传入参数。

请参阅:batch file to run jar file with parameters

Batch : For what is this symbol used? (percent-sign asterisk)