1

プロセスの出力を読み取るために 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");改行があってもコンソールとまったく同じ出力が得られます。

4

1 に答える 1