无法使用Node.js中的child_process exec调用来parsing目录path

我在做什么:

我正在用Node.js创build一个search引擎

到目前为止,我做了什么:

我用Java创build了一个testing程序,并完成了POC,无论search是否正确执行。 而且它的命令提示符工作得很好。 然后,我将程序导出到可执行的JAR文件中,并成功通过命令提示符执行该JAR文件。

现在我正试图通过Node.js给这个程序的web界面,并试图从中调用JAR文件。 到目前为止,我已经pipe理所有的视图和路由器的应用程序。 但是现在当我试图调用JAR文件使用节点subprocess面临的错误 –

stderr:'C:\ Program'不被识别为内部或外部命令,可操作的程序或batch file。

exec错误:错误:命令失败:“C:\ Program”不被识别为内部或外部命令,可操作程序或batch file。

我给错误的代码如下 –

var exec = require('child_process').exec, child; child = exec('C:\\Program Files\\Java\\jre6\\bin java -jar C:\\java\\ease.jar '+ newstr, function (error, stdout, stderr){ console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if(error !== null){ console.log('exec error: ' + error); } }); 

我试图search的API和谷歌也没有用,因为我无法弄清楚如何正确地给出pathstring。

使用exec时 ,第一个参数是The command to run, with space-separated arguments 。 所以,它认为要执行的可执行文件是C:\Program因为C:\Program之后有一个空格。 另外,看起来你可能会在bin之后和java之前缺less一个\或者你不需要提供path。

以下可能工作(不确定和无法testing):

 exec('"C:\\Program Files\\Java\\jre6\\bin\\java" -jar C:\\java\\ease.jar '+ newstr);