web-dev-qa-db-ja.com

node.js child_process APIでjarファイルを実行するにはどうすればよいですか?

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

私のコードで私が犯した間違いはありますか?この時点でエラーがスローされる理由はわかりません。

17
Jonathan Moo

exec();から.jarを削除します

.jar引数を使用すると、Javaは-jarなしでjarファイルを検索します。それ以外は.. filename.jar.jarを検索

特別なスノーフレークmacosは.jarを必要とし、省略した場合は機能しません。
(Gʀɪᴍに感謝) 関連する質問も作成しました

12
GottZ

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

二重ひもを忘れないでください、さもなければそれは混乱になります。

5
Coding bat