微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Dart的“Process.start”不能在Ubuntuterminal中执行Ubuntu命令?

我有命令,我想用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] 举报,一经查实,本站将立刻删除。

相关推荐