当Node.js中的jar文件带有child_process时,是否需要JAR扩展?

时间:2019-01-23 18:46:04

标签: java node.js macos jar

将我的一些Shell脚本转换为Node,这样我就可以学习Node。在shell中,我通常使用以下命令运行JAR文件:

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

在研究如何在Node中运行JAR时,我碰到了“ How to run a jar file with node.js child_process API?”,其中accepted answer表示不需要.jar扩展名。

根据建议,我在读完“ How to Create JAR file and Using child_process OR shell script to Execute”之后做了npm install child_process

写了我的脚本并收到一个错误,该错误是相同的错误:

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。

0 个答案:

没有答案