[英]Calling Java from NodeJS outputs file in 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文件结果的路径? 理想情况下进入\\app\\uploads
?
/myfolder/app/components/owl2vowl.jar
/myfolder/app/uploads/ontology.owl
/myfolder/app.js
/myfolder/ontology.json
编辑-添加了解决方案
javabeangrinder建议的解决方案是添加一个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){})
问题不是Java代码,尽管可以将其更改为接受它,如先前建议的那样将其更改为接受输出文件夹。
我相信,将node.js exec选项cwd
添加到您希望输出的目录即可解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.