Node.js运行java程序?

时间:2015-03-24 20:45:12

标签: 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) {
    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)

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

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

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

您可能还需要指定java的完整路径。