我有一个简单的nodejs服务器启动并运行。当我尝试生成子进程时,我遇到了麻烦。我试图访问的jar文件与节点脚本位于同一目录中。它接受我试图传入的命令行参数,并将数据输出到命令行,我试图将其输入到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)
有什么想法吗?
答案 0 :(得分:10)
您正在执行java
。 -jar
和done.jar
是要传递的参数。
var child = require('child_process').spawn(
'java', ['-jar', 'done.jar', 'argument to pass in']
);
您可能还需要指定java
的完整路径。