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文件的路径
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