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

Jon*_*Moo 14 javascript java node.js

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

Error: Unable to access jarfile /home/example/Applications/example.jar
Run Code Online (Sandbox Code Playgroud)

这是我在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);
    }
});
Run Code Online (Sandbox Code Playgroud)

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

node test.js
Run Code Online (Sandbox Code Playgroud)

我的代码是否有任何错误?我不确定为什么它会在此时抛出错误.

Got*_*ttZ 10

.jar从中移除exec();

java将.jar在使用-jar参数时找不到jar文件.其他就像..寻找filename.jar.jar

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

  • 谢谢,我猜这是我的问题.没有正确地写位置. (2认同)

Cod*_*bat 8

如果您在 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);
}
});
Run Code Online (Sandbox Code Playgroud)

不要忘记双排,否则会一团糟。