2013-05-28 3 views
0

이 코드는 A 컴퓨터에서 잘 작동하고 컴퓨터 B에서 작동하지 않습니다에 아무것도 예외 또는 다른 어떤 출력 스트림을 저장할 수 없습니다 컴퓨터 컴퓨터 B 로그 파일에서 로그 파일을 만들지 못했습니다. 컴퓨터 A와 B는 동일한 자바 버전을 가지고 있습니다 ... 아이디어가 있습니까?자바에 ... .. 내가 왜 이해할 수 없다 ... 파일

String str = "cmd /C dir tools>1.log"; 
    try { 
     Runtime.getRuntime().exec(str); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

PS 이 코드는 SLaks 말했다 무슨 일 두 컴퓨터

String str = "cmd /C dir tools"; 
+3

당신은 사용해야 자바에 내장 된 파일의 API. – SLaks

+1

은 사용 권한 문자열에 의해 지정된 명령 밖으로 시도 – nidhin

+0

확인하지만 유지했다 **/K ** –

답변

1

출력을 파일에 올바르게 저장하려면 프로세스의 출력 스트림을 열어야합니다.

당신은 프로세스 객체를 생성하고 파일에 있음을 저장하여이 작업을 수행 할 수 있습니다

Process p = Runtime.getRuntime().exec(str); 
InputStreamReader reader = p.getInputStream(); 
BufferedReader buffer = new BufferedReader(reader); 
String line = null; 
while ((line = buffer.readLine() != null) { 
    //write stuff to file here 
} 
+0

이 방법에 대해 알고 있고 잘 작동하지만 왜 내 방법이 작동하지 않는지 이해할 수 없습니다. –

+0

이 문제는 이전에 논의 된 것으로 생각되지만 기사를 찾을 수 없습니다. 대신 여기를보십시오 : http://www.javaworld.com/jw-12-2000/jw-1229-traps.html?page=4 4.6 절에서 설명해야합니다. – Farlan

0

에 잘 작동 - 그것은 당신의 최선의 방법이 사용하는 내장 된 파일의 API. 일반 자습서 용 link입니다.

이러한 API를 사용하면 컴퓨터 A에서 B ... C ...와 같은 이상한 환경 문제가 발생합니다.

+0

확인 나는 그것에 대해 알고 있지만 내 방법이 작동하지 않는 이유를 이해가 안 ... 확인 .. 내 경우에 무엇이 잘못되었는지 설명해 주시겠습니까 –

관련 문제