Подтвердить что ты не робот

Как запустить файл jar с помощью API node.js child_process?

Я попытался запустить файл jar на nodejs, но он выкинул следующую ошибку:

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);
    }
});

Я запустил свой test.js с nodejs в этой команде, но получил ошибку выше:

node test.js

Есть ли ошибка, которую я сделал с моим кодом? Я не уверен, почему он выдает ошибку на этом этапе.

4b9b3361

Ответ 1

удалить .jar из exec();

java найдет файл jar без .jar при использовании аргумента -jar. иначе это как... поиск filename.jar.jar

специальные снежинки macos требуют .jar и не работают, если вы его опустите. (спасибо Gʀɪᴍ)

Ответ 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);
}
});

Не забывайте о двойных шатках, иначе это будет беспорядок.