我有命令,我想用Dart打电话。
如果我在一个普通的Ubuntuterminal上运行,命令是sonar-runner ,它是完美的。 这是因为我编辑了.profile文件中的PATH ,所以它变成了一个全局命令。
但是,如果我写了一个简单的Process.start代码,应该触发相同的事情:
Process.run('sonar-runner',[]).then((result) { stdout.write(result.stdout); stderr.write(result.stderr); });
我得到的回应是:
Uncaught Error: ProcessException: No such file or directory Command: sonar-runner Unhandled exception: ProcessException: No such file or directory Command: sonar-runner
我猜这是一个Ubuntuconfiguration的东西,因为我没有问题通过DART运行ping localhost相同的方式。
什么可能是错误的,以便第三方应用程序运行时不能find全局命令作为一个新的进程?
更新 – 解决scheme已经find
我find了解决我的问题,如下所述:
使用Process.start设置环境variables
对于我的具体情况,这个代码工作:
Process.run("bash",["-c","sonar-runner"]).then((result) { stdout.write(result.stdout); stderr.write(result.stderr); });
试试这个方法run it in a normal Ubuntu terminal :
Process.run('sonar-runner',[],runInShell: true).then((result) { stdout.write(result.stdout); stderr.write(result.stderr); });
这个问题似乎是不能找到“声纳运动员”,你有没有尝试完整的道路?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。