1
輸出文件對於項目的結構是這樣的:從的NodeJS中調用Java根
/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
選項
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){})
爲什麼不要移動'的NodeJS fs.rename(oldPath,NEWPATH)'文件,生成後呢? –
已經做到了 - '//將文件從根目錄移動到/ cached/ fs.rename(getFileName.split(「。」)[0] +「.json」,__dirname +'/ cached /'+ getFileName.split )[0] +) 「 」「 JSON。」; '但JAR可以生成不同的文件名(取決於調用Java時的時間點)。 – iulia
您的其他選擇是分叉OWL2VOWL項目,添加另一個命令行參數,如'outputPath'並實現該功能。它不應該是一個大問題,像https://github.com/VisualDataWeb/OWL2VOWL/blob/master/src/main/java/de/uni_stuttgart/visit中的exportFile = new File(outputPath,filename) /vowl/owl2vowl/Main.java –