Нужно ли мне расширение JAR, когда файл jar в Node.js с child_process? - PullRequest
0 голосов
/ 23 января 2019

Преобразование нескольких моих сценариев оболочки в Node, чтобы я мог изучить Node, в оболочке я обычно запускаю файл JAR с помощью команды:

java -jar validate.jar test.json >> results.txt

При исследовании, как запустить JAR в узле, я столкнулся с « Как запустить файл jar с API-интерфейсом child.process node.js? » с принятым ответом , указывающим .jar расширение не требуется.

Следуя совету, я сделал npm install child_process после прочтения " Как создать файл JAR и Использование сценария оболочки child_process OR для выполнения "

написал мой сценарий и получил ошибку, которая была такой же:

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

После перехода я обнаружил, что на моем Mac расширение .jar требуется для правильной работы. Я понимаю, что ответ от 2012 года, и это 2019, но является ли ответ неправильным, или это зависит от операционной системы, чтобы вызвать расширение?

Вот код, который я написал:

let jarFile     = __dirname + '/validate.jar'
let theFile     = 'test.json'
let outputFile  = 'result.txt'
let runCommand  = '/usr/bin/java -jar ' + jarFile + ' ' + theFile
// return console.log(runCommand)


var exec = require('child_process').exec
child = exec(runCommand, function (error, stdout, stderr) {
    if(error !== null) {
        console.log('exec error: ' + error)
    } else {
        console.log('stdout: ' + stdout);
    }
})

Код работает нормально, но прежде чем научиться писать в файл, который я хочу понять, при вызове файла JAR требуется расширение или нет, и оно отличается в зависимости от ОС? В настоящее время я использую Node v6.12.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...