我正在使用Sonar的API(http://javadocs.sonarsource.org/4.5/apidocs/org/sonar/api/utils/command/Command.html),它说该函数执行命令"命令将用sh可执行文件执行。"
我想要做的只是使用
tslint path / to / my / code.ts
在终端(因为这工作)。但是这该死的方法可以用#34; sh"所以它看起来像这样
sh tslint path / to / my / code.ts
并给我错误
sh:0:无法打开tslint
我如何解决这个问题才能执行" tslint"即使命令以sh?
开头感谢您的帮助
编辑:因为你们中的许多人都问过生成这个命令的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);
答案 0 :(得分:0)
使用which tslint
文件的完整路径检查终端。
从终端你可以用
/bin/sh -c "/path/to/tslint /path/to/my/code.ts"
使用Sonar API,它是:
Command command = Comman.create('/full/path/name/to/tslint');
command.addArgument("--config " + configFile + " --format json " + file.trim());
您不需要-c
命令中的sh
参数,但您必须使用tslint
命令的绝对路径。