从NodeJS调用Java以root身份输出文件

对于这样的项目结构:

/myfolder/app/components/owl2vowl.jar /myfolder/app/uploads/ontology.owl /myfolder/app.js 

我正在使用OWL2VOWL将本体转换为JSON

我在app.js编写代码来运行带有一些参数的jar文件,它将像这样运行命令:

 java -jar e:\myfolder\app\components\owl2vowl.jar -file e:\myfolder\app\uploads\ontology.owl 

这里是代码:

 var exec = require('child_process').exec, child; child = exec('java -jar ' + __dirname + '/components/owl2vowl.jar' + ' -file ' + syncPath , function (error, stdout, stderr){ if(error !== null) console.log('There was an error parsing the ontology' + error); else console.log('Succes parsing the ontology'); 

哪里

 syncPath = e:\myfolder\app\uploads\ontology.owl 

问题是,在文件夹myfolder生成文件ontology.json生成结果

如何更改Java文件结果生成的path? 理想的进入\app\uploads

 /myfolder/app/components/owl2vowl.jar /myfolder/app/uploads/ontology.owl /myfolder/app.js /myfolder/ontology.json 

编辑 – 添加解决scheme

javabeangrinderbuild议的解决scheme是添加一个cwd选项(在下面,结果将被输出到文件夹/components

 var options = { encoding: 'utf8', timeout: 0, maxBuffer: 200*1024, killSignal: 'SIGTERM', cwd: __dirname + '/components/', env: null } child = exec('java -jar ' + __dirname + '/components/owl2vowl.jar' + ' -iri ' + '"'+body.url+'"'+' -echo' , options, function (error, stdout, stderr){}) 

  • Node.js与struts可能吗?
  • 如何select最佳自动化与selenium工具组合
  • Eclipse - 如何将键shourtcut命令分配给启动types(运行types)
  • 在HTTPS中从节点JS调用Java REST API(在Tomcat上)
  • Swagger UI不加载昂首阔步的JSON
  • Selenium-Webdriver NodeJS相当于Java代码的DesiredCapabilities
  • 如何用x.509签名/证书签署PDF
  • 如何在Appiumconfiguration中configuration通用path`/ nodejs`和`/ main.js`path
  • 问题不在于java代码,尽pipe可以修改它,以便像前面build议的那样接受输出文件夹。

    我相信,将node.js exec选项cwd添加到你想要输出的目录就可以了。

    在这里进一步看: child_process.exec(命令[,选项],callback)