Java プログラムを Linux bash と対話させようとしていますが、問題が発生します。prog
1 つの整数を読み取り、stdin
その 2 乗を出力する単純な実行可能ファイルがあります。実行中
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
ます。解決策は何ですか?