这是我的代码:

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


otherCommandsArray[String],包含以下元素:


vcbuild
/rebuild
.sln文件的路径


vcVarsAll包含Visual Studio vcvarsall.bat的路径。它的路径是C:\tools\microsoft visual studio 2005\vc\vcvarsall.bat。我收到的错误是:
'c:\Tools\Microsoft' is not recognized as an internal or external command,operable program or batch file.

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执行的相同代码有效。我究竟做错了什么?

最佳答案

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

10-05 19:05