리눅스에서 java runtime exec() 로 수행이 잘 안되서요.

1001011의 이미지

안녕하세요. 궁금한게 있어서 글올립니다. ^^;

public RunNLOAD(){
try {
Process proc = Runtime.getRuntime().exec("RunNLOAD");
proc.waitFor();

if(proc.exitValue() != 0)
System.out.println("eer");
proc.destroy();
} catch(Exception e) {
System.out.println( e.toString() );
}

}

위에서 RunNLOAD는 nload라는 네트워크 bandwidth를 측정해주는 프로그램을 실행시키고, 그 결과화면을 파일로 출력하는 쉘 스크립트입니다.
(그냥 간단하게 nload >> log 이런식이거든요;;)

근데 쉘 스크립트만 따로 실행하면 결과파일이 제대로 잘 나오는데,
꼭 자바로 exec로 하면 결과파일이 제대로 출력이 안되더라구요.
내용도 잘려서 나와요.

왜 자바 통해서 실행시키면 결과파일이 이상해지는 걸까요.
-_ㅜ 조언부탁드려요..

tobwithu96의 이미지

표준출력을 자바 런타임이 가져가기 때문일것 같습니다.
proc.getInputStream()을 사용해서 출력을 따로 처리해 보세요.

익명사용자의 이미지

Runtime.exe() 로 shell 을 수행할 때,
shell 내부에 첫 라인에 #!/bin/sh 이 없는 경우
수행되지 않는 현상이 있었습니다.