2015-09-17 2 views
0

Я работаю с API для Sonar (http://javadocs.sonarsource.org/4.5/apidocs/org/sonar/api/utils/command/Command.html), и он говорит, что функция выполняет команды, которые «команда будет исполнена с исполняемым файлом sh».
То, что я хочу сделать, это просто использоватьОткрыть исполняемый файл с «sh» под Ubuntu

tslint path/to/my/code.ts

в терминале (так как это работает). Но проклятый метод excutes строки с «ш», так это выглядит примерно так

sh tslint path/to/my/code.ts

и дает мне ошибку

sh: 0: can't open tslint

Как работать вокруг этого просто выполнить «tslint» несмотря на то, команда начинается с sh?

Спасибо за помощь

EDIT: Так как многие из вас спрашивали, что код Java выглядит, что производит эту команду (не мое, это из проекта с открытым исходным кодом):

Command command = Command.create("tslint"); 
command.addArgument("--config " + configFile + " --format json " + file.trim()); 

окончательного редактирования :
рабочая версия:

Command command = Command.create("node"); 
     command.addArgument(pathToTsLint); 
     command.addArgument("--format"); 
     command.addArgument("json"); 
     command.addArgument("--config"); 
     command.addArgument(configFile); 
     command.addArgument(file.trim()); 
     command.setNewShell(false); 
+1

Вы добавили разрешение «excute» на этот файл? check chmod command –

+1

Пожалуйста, продемонстрируйте код, который вы пытаетесь использовать. В оболочке вы можете использовать «sh -c» tslint path/to/my/code.ts'', но неясно, как адаптировать это к используемому API. – chepner

+0

'Command command = Command.create (" tslint ");' 'command.addArgument (" - config "+ configFile +" --format json "+ file.trim());' –

ответ

0

Проверить в терминале с which tslint полный путь к файлу. От терминала вы можете все это с

/bin/sh -c "/path/to/tslint /path/to/my/code.ts"

С API эхолота это:

Command command = Comman.create('/full/path/name/to/tslint'); 
command.addArgument("--config " + configFile + " --format json " + file.trim()); 

Вам не нужно параметр -c из команды sh, но вы должны использовать абсолютный путь к команде tslint.

+0

Он дает мне это сообщение об ошибке: http: //i.imgur.com/9x73aIJ.png –

+0

@ManuelHuber блокирует исправленную версию моего ответа. –

+0

Я пробовал это: http://i.imgur.com/TufhCsY.png и получил действительно странную ошибку: http: //i.imgur.com/vNgxF3m.png «слово неожиданное, ожидаемое») «?! –

Смежные вопросы