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>
(참고 : 저는 보안에 대한 실제 출력을 편집 한 이유)
처음 두 줄을 읽은 후 null이 반환되므로 스트림이 끝납니다. 내가 네 줄 전부를 얻을 수있는 방법이 있니?
업데이트 : 세 번째 빈 줄은 널 (null)으로 해석되고있다. 그러나 동일한 프로그램을 시도하면 Process p=Runtime.getRuntime().exec("cmd /c dir");
새 줄이 있어도 콘솔과 똑같은 출력을 얻습니다.
출력을 읽고 싶다고 생각했습니다. ** p.getOutputStream ** –
아마도 중간의 빈 줄이 null로 해석됩니까? – mxns
1) [exec 태그 Wiki] (http://stackoverflow.com/tags/runtime.exec/info)에서 링크 된 기사를 살펴보고 모든 제안을 구현하십시오. 즉각적인 문제를 해결할 수도 있지만 2) Point (1)과 3을 쉽게 구현할 수있는 ProcessBuilder를 사용하십시오. 3) 인수를 배열로 제공하십시오. E.G. ''nslookup '', '10.123.30.130''. –