Scala不是';t允许我执行一个路径包含空格的批处理文件。相同的Java代码可以。给出了什么?

Scala不是';t允许我执行一个路径包含空格的批处理文件。相同的Java代码可以。给出了什么?,scala,process,runtime,Scala,Process,Runtime,以下是我的代码: var commandsBuffer = List[String]() commandsBuffer ::= "cmd.exe" commandsBuffer ::= "/c" commandsBuffer ::= '"'+vcVarsAll.getAbsolutePath+'"' commandsBuffer ::= "&&" otherCommands.foreach(c => commandsBuffer ::= c) val asArray = c

以下是我的代码:

var commandsBuffer = List[String]()
commandsBuffer ::= "cmd.exe"
commandsBuffer ::= "/c"
commandsBuffer ::= '"'+vcVarsAll.getAbsolutePath+'"'
commandsBuffer ::= "&&"
otherCommands.foreach(c => commandsBuffer ::= c)
val asArray = commandsBuffer.reverse.toArray
val processOutput = processutils.Proc.executeCommand(asArray,true)
return processOutput
otherCommands
是一个
数组[String]
,包含以下元素:

  • vcbuild

  • /rebuild

  • .sln文件的路径

vcVarsAll包含到Visual Studio的
vcvvarsall.bat
的路径。它的路径是
C:\tools\MicrosoftVisualStudio2005\vc\vcvarsall.bat
。我收到的错误是:
“c:\Tools\Microsoft”未被识别为内部或外部命令,
可操作的程序或批处理文件。

processutils.Proc.executeCommand
具有以下实现:

def executeCommand(params:Array[String],display:Boolean):(String,String) = {
  val process = java.lang.Runtime.getRuntime.exec(params) 
  val outStream = process.getInputStream
  val errStream = process.getErrorStream
  ...
}

同样的代码,在Java/Groovy works中执行。我做错了什么?

好的,所以我尝试了我能想到的所有组合。最终起作用的是从组合中省略了
cmd.exe/c