【发布时间】:2013-08-27 18:52:47
【问题描述】:
我正在尝试让我的 Java 程序与 Linux bash 交互,但出现了问题。我有一个简单的可执行文件prog,它从stdin 中读取一个整数并输出它的平方。执行中
echo 5 | ./prog
来自 bash 本身在 stdout 中打印正确答案 25 但正在运行
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。解决办法是什么?
【问题讨论】: