我试图让我的 Java 程序与 Linux bash 交互,但出现了问题。我有一个简单的可执行文件prog
,它从中读取一个整数stdin
并输出它的平方。执行
echo 5 | ./prog
从 bash 本身打印正确答案但正在25
运行stdout
import java.io.*;
public class Main {
public static void main(String[] args) throws InterruptedException, IOException {
Runtime run = Runtime.getRuntime();
Process proc = run.exec("echo 5 | ./prog");
proc.waitFor();
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while(br.ready())
System.out.println(br.readLine());
}
}
居然给了5 | ./prog
。解决办法是什么?