如何从node.js调用java程序?

时间:2015-08-16 19:35:01

标签: javascript java node.js

我在同一个文件夹(.class和.java和.js)中有一个node.js脚本和一个java程序。我想从node.js脚本调用java程序。在终端我可以像这样调用java程序

java -cp java-json.jar:. PlutoMake "tests/android.png"

我看到了这个帖子How to call Java program from NodeJs

我正在尝试做同样的事情,这里是node.js代码

var child = spawn('java', ['-cp java-json.jar:. PlutoMake', 'tests/android.png']);

这似乎没有崩溃,但没有任何反应。 java程序创建一个图像,但如果我通过节点执行它,它就不起作用。有谁知道什么是错的?

由于

2 个答案:

答案 0 :(得分:6)

您传递的参数数组应该每个参数有一个元素。你错误地将它们中的一些组合在一起。

var child = spawn('java', ['-cp', 'java-json.jar:.', 'PlutoMake', 'tests/android.png']);

检查输出和退出代码可能很有用:

child.on('close', function (exitCode) {
    if (exitCode !== 0) {
        console.error('Something went wrong!');
    }
});

// If you’re really just passing it through, though, pass {stdio: 'inherit'}
// to child_process.spawn instead.
child.stderr.on('data', function (data) {
    process.stderr.write(data);
});

答案 1 :(得分:0)

您可以使用模块node-java-caller简单地调用带有类路径和参数的java命令,它嵌入对spawn的调用,并且如果系统中不存在Java,则会自动安装它