【问题标题】:Node.js run a java program?Node.js 运行 java 程序?
【发布时间】:2015-03-24 20:45:12
【问题描述】:

我有一个简单的 nodejs 服务器正在运行。当我尝试生成子进程时遇到了麻烦。我试图访问的 jar 文件与节点脚本位于同一目录中。它接受我试图传入的命令行参数,并将数据输出到命令行,我试图通过管道将其传递到 var child。

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)

有什么想法吗?

【问题讨论】:

  • 不应该是spawn('java',[-jar', 'done.jar', 'etc...'])吗?

标签: node.js


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢布拉德,做到了!对于任何有同样问题的人,我不需要指定 java 的完整路径。
  • 也为我工作!但是,我不得不提到 jar 文件的完整路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 2017-05-26
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多