有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从Java ProcessBuilder运行的shell中的安卓显示提示

我运行shshell进程,如下所示:

ProcessBuilder pb = new ProcessBuilder();
pb.command("sh");
Process p = pb.start();

然后我将命令推入其OutputStream,并从其InputStream读取输出。一切正常-我有一个外壳

但是shell没有提示。如果我通过adb在设备上运行“sh”,我会得到一个提示。我可以使用PS1=blah更改提示。但是当从ProcessBuilder运行sh时,没有提示

我怎样才能显示提示


共 (1) 个答案

  1. # 1 楼答案

    诀窍是强制shell以“交互”模式运行——相当于使用sh -i

    ProcessBuilder pb = new ProcessBuilder();
    pb.command("sh", "-i");
    Process p = pb.start();
    

    这是可行的,但不幸的是,人们抱怨找不到tty fd。我现在可以接受