如何在 Java (Raspberry pi) 中执行 bash 命令

How to execute bash commands in Java (Raspberry pi)

我不知道为什么,但我只能通过代码在我的 Raspberry 3B 上执行非常小的命令托盘(我什至可以执行 echo)。出于某种原因,您通常可以在终端本身执行的命令中有 99% 无法通过代码执行。

示例:我执行此 java 代码: Runtime.getRuntime().exec("echo hi");

我明白了: `java.io.IOException: 无法 运行 编程“echo hi”:错误=2,没有那个文件或目录

在 java 代码中是否有我无法访问的 PATH 配置?为什么我不能从代码中对 raspberry pi 执行任何命令?

我写了一些使用 exec() 调用的示例。还有其他方法可以从Java内部启动进程(ProcessBuilder是这里的关键字),但是这个例子比较容易理解:

import java.util.*;
import java.io.*;
import java.text.*;

public class X {

    public static void main(String argv[])
    {
        String args[] = { "/bin/bash", "-c", "uptime" };
        try {
            Process p = Runtime.getRuntime().exec(args);
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line = in.readLine();
            while (line != null) {
                System.out.println("Found: " + line);
                line = in.readLine();
            }
        } catch (Exception e) {
            System.err.println("Some error occured : " + e.toString());
        }
    }

}

基本上程序执行命令行/bin/bash -c uptime;只是一个 uptime 会做同样的事情,但我想展示如何使用命令行参数来启动程序。