プロセスの出力を読み取るために BufferedReader を使用しようとしています。やってみると
Process p=Runtime.getRuntime().exec("nslookup 10.123.30.130");
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
System.out.println(line);
line=reader.readLine();
}
出力は
Server: <edited server details>
Address: <edited address details>
一方、コンソールでのプロセスの実際の出力は次のとおりです。
Server: <details edited>
Address: <details edited>
Name: <details edited>
Address: <details edited>
(注:セキュリティ上の理由から、実際の出力を編集しました)
私の観察では、最初の 2 行を読み取った後、null が返され、ストリームが終了します。完全な 4 行を取得する方法はありますか?
更新: 3 番目の空の行は null として解釈されています。しかし、同じプログラムを試してみると、 Process p=Runtime.getRuntime().exec("cmd /c dir");
改行があってもコンソールとまったく同じ出力が得られます。