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

2022-09-02 10:26:21

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

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

这是我在测试中的以下代码.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运行了我的测试.js但收到上面的错误:

node test.js

我的代码是否犯了任何错误?我不确定为什么它在这一点上抛出错误。


答案 1

从中删除.jarexec();

java会在不使用参数的情况下找到jar文件。否则它就像..搜索.jar-jarfilename.jar.jar

特殊的雪花 macos 需要,如果你省略它,它不起作用。
(感谢Gʀɪᴍ)他还提出了一个相关的问题。.jar


答案 2

如果您在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);
}
});

不要忘记双层,否则它将是一团糟。