gpt4 book ai didi

java - 打开一个 shell 并在 java 中与其 I/O 交互

转载 作者:IT王子 更新时间:2023-10-29 01:16:39 24 4
gpt4 key购买 nike

我正在尝试打开一个 shell (xterm) 并与之交互(编写命令并读取 shell 的输出)

这是一个无法运行的代码示例:

public static void main(String[] args) throws IOException {
Process pr = new ProcessBuilder("xterm").start();
PrintWriter pw = new PrintWriter(pr.getOutputStream());
pw.println("ls");
pw.flush();
InputStreamReader in = new InputStreamReader(pr.getInputStream());
System.out.println(in.read());
}

当我执行这个程序时,一个“xterm”窗口打开并且没有输入“ls”命令。只有当我关闭窗口时,我才会打印出“-1”,并且不会从 shell 中读取任何内容

重要-

我知道我可以使用:
Process pr = new ProcessBuilder("ls").start();

要获得输出,但我需要为其他用途打开“xterm”

非常感谢

最佳答案

您的问题是 xterm 进程的标准输入和输出与终端窗口中可见的实际 shell 不对应。直接运行 shell 进程可能比 xterm 更成功:

Process pr = new ProcessBuilder("sh").start();

关于java - 打开一个 shell 并在 java 中与其 I/O 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com