【问题标题】:Executing Runtime.getRuntime().exec() with space between its arguements执行 Runtime.getRuntime().exec() 参数之间有空格
【发布时间】:2016-08-19 09:51:09
【问题描述】:

各位专家大家好,

希望对我这个琐碎的问题有一些建议。

我正在尝试执行以下语法,同时将参数 testcase1、testdata1 和 testresult 分别传递给 jar_filepath、tc、test_data 和 test_result

Runtime.getRuntime().exec("cmd /c start cmd /k java -jar "+jar_filepath + tc + test_data + test_result);

但是,在执行时,出现如下错误: Error: Unable to access jarfile C:\TestAutomation\Jar\Test1.jartestcase1testdata1testresult2 未应用所有参数的空间。

希望对编写代码以在 exec() 级别执行的正确方法提出建议。

提前谢谢你。

【问题讨论】:

  • 嗯,你必须在参数字符串前面包含空格。或者传递一个String[],将每个参数作为一个元素。
  • 您好乔恩,感谢您的反馈。我相信我确实在参数字符串前面添加了空格,按照语法 Runtime.getRuntime().exec("cmd /c start cmd /k java -jar "+jar_filepath + tc + test_data + test_result);
  • 至于你的第二个建议,你的意思是参数首先存储在一个数组中,然后在 exec() 中调用它作为一个数组本身而不是单独作为元素?非常感谢您的建议和努力。

标签: java runtime executable


【解决方案1】:

您的方式不在参数前添加空格。看起来像这样:

Runtime.getRuntime().exec("cmd /c start cmd /k java -jar "
    + jar_filepath + " " + tc + " " + test_data + " " + test_result);

但如果您使用String[],则会自动完成:

String[] command = {
    "cmd /c start",
    "cmd /k java -jar " + jar_filepath,
    tc,
    test_data,
    test_result
};

Runtime.getRuntime().exec(comand);

【讨论】:

  • 我怎么能错过......非常感谢你叫醒我!!!向你竖起大拇指,乔恩!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多