如何使用node.js child_process API运行jar文件?

时间:2012-10-15 08:54:49

标签: java javascript node.js

我试图在nodejs上运行一个jar文件,但它抛出了以下错误:

Error: Unable to access jarfile /home/example/Applications/example.jar

这是我在test.js中的以下代码:

var exec = require('child_process').exec, child;
child = exec('/usr/bin/java -jar ~/Applications/example.jar',
  function (error, stdout, stderr){
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if(error !== null){
      console.log('exec error: ' + error);
    }
});

我在此命令中使用nodejs运行了test.js,但收到了上述错误:

node test.js

我的代码是否有任何错误?我不知道为什么它会在此时抛出错误。

2 个答案:

答案 0 :(得分:10)

.jar

中删除exec();

使用.jar参数时,java会找到没有-jar的jar文件。其他就像...搜索filename.jar.jar

特殊雪花马克需要.jar,如果省略则不起作用 (感谢Gʀɪᴍ)he also created a related question

答案 1 :(得分:3)

如果您在Windows命令提示符下使用它,则可以使用此代码。

var exec = require('child_process').exec, child;
child = exec('java -jar C:\\..\\..\\yourjar.jar',
function (error, stdout, stderr){
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if(error !== null){
  console.log('exec error: ' + error);
}
});

不要忘记双重禁区,否则会一团糟。