【发布时间】:2021-09-28 19:28:49
【问题描述】:
我不知道为什么,但我只能在我的 Raspberry 3B 上通过代码执行一小部分命令(我什至可以执行 echo)。出于某种原因,您通常可以在终端本身执行的 99% 的命令,您无法通过代码执行。
示例:我执行这个 java 代码:
Runtime.getRuntime().exec("echo hi");
我明白了: `java.io.IOException: Cannot run program "echo hi": error=2, No such file or directory
是否存在我无法在 java 代码中访问的 PATH 配置?为什么我不能从代码中对树莓派执行任何命令?
【问题讨论】:
-
echo是一个内置的 shell。所以命令应该是/bin/bash -c "echo hi"。我会为命令使用一个数组,并准备好读取标准输入和标准错误,最好是在专用线程中 -
尝试向您的 ide 询问您正在使用的 exec 的 javadoc。它可能需要一个单词数组,而不是命令字符串。
-
@g00se - 虽然 echo 是一个内置的 shell,但也有一个 /bin/echo (包括我刚刚看到的随机 Raspberry Pi Zero)。
-
如果存在,它可能不在 $PATH 中。显然不是,因为无法识别命令
-
我刚刚在我的 Pi 上写了一个快速的 Java 测试(它有股票 Raspbian 非 GUI 图像)。对我有用,因为我没有任何异常并且进程以 0 退出。但没有看到回显输出。
标签: java bash raspberry-pi