Node.js运行一个java程序?

我有一个简单的nodejs服务器启动并运行。 当我尝试产生一个subprocess时,我遇到了麻烦。 我尝试访问的jar文件与节点脚本位于相同的目录中。 它需要一个命令行参数,我试图通过,它会输出数据到命令行,我试图pipe到var的孩子。

var child = require('child_process').spawn('java -jar done.jar',['argument to pass in']); child.stdout.on('data', function(data) { console.log(data.toString()); }); child.stderr.on("data", function (data) { console.log(data.toString()); }); 

这会产生以下错误消息:

 events.js:85 throw er; // Unhandled 'error' event ^ Error: spawn java -jar done.jar ENOENT at exports._errnoException (util.js:746:11) at Process.ChildProcess._handle.onexit (child_process.js:1046:32) at child_process.js:1137:20 at process._tickCallback (node.js:355:11) 

有任何想法吗?

你正在执行java-jardone.jar是传递的参数。

 var child = require('child_process').spawn( 'java', ['-jar', 'done.jar', 'argument to pass in'] ); 

你也可能需要指定java的完整path。