Node.js是否运行java程序?

Node.js是否运行java程序?,node.js,Node.js,我有一个简单的nodejs服务器正在运行。当我试图生成一个子进程时,我遇到了麻烦。我试图访问的jar文件与节点脚本位于同一目录中。它接收我试图传入的一个命令行参数,并将数据输出到命令行,我试图通过管道将数据传输到var子级 var child = require('child_process').spawn('java -jar done.jar',['argument to pass in']); child.stdout.on('data', function(data) { co

我有一个简单的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)

有什么想法吗?

您正在执行
java
-jar
done.jar
是要传递的参数

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

您还需要指定
java
的完整路径,或者确保在操作系统路径中指定了java。

它不应该是
spawn('java',[-jar',done.jar',etc..)
?谢谢Brad,这样做了!对于任何有同样问题的人,我不需要指定java的完整路径。对我来说也很有用!然而,我不得不提到jar文件的完整路径。