2012-04-15 2 views
0

'jmap -dump : format = b; Runtime.exec의()에서 "명령 파일,하지만 날짜와 같은 다른 명령, PWD가 잘 작동하는 곳은 늘 실행합니다. 사람이 이유를 알 수 있습니까?JMAP -dump가 java : runtime.exec()에서 실행되지 않았습니다.

공공 정적 무효 명령을 (문자열들) {

runtime=Runtime.getRuntime(); 


    try { 
     System.out.println(" Creating Heap Dump "); 
     process=runtime.exec("jmap -dump:format=b,file=D:/heapdump_2012APR10/heapdump_date +%d%b%Y-%H_%M_%S.bin 4478"); 
     System.out.println("Heap Dump Created. Zipping the file"); 
     process=runtime.exec("gzip *.bin"); 
     System.out.println("Succesfully zipped"); 



    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
당신은 두 개의 전화
+2

전화를 걸 때 사용하는 코드를 표시하십시오. –

+1

해결 방법은 *** Runtime.exec()이 권장하지 않는 모든 *** ***을 구현하여 찾을 수 있습니다 (http://www.javaworld.com/javaworld/jw-12-2000/). jw-1229-traps.html). –

+0

코드가 추가되었습니다 .. – Loga

답변

0

연속적으로. 첫 번째는 종료 것을 기다리지 않고

process=runtime.exec("jmap -dump:format=b,file=D:/heapdump_2012APR10/heapdump_date +%d%b%Y-%H_%M_%S.bin 4478"); 
process=runtime.exec("gzip *.bin"); 

를 처리 그리고 당신은 할 실행중인 프로세스의 스트림을 소비하거나 코드를 종료 코드로 확인하지 마십시오.

@Andrew Thompson의 제안에 따라이 내용을 읽으십시오. article. Java에서 외부 프로세스를 시작하는 방법을 잘 설명합니다.

+0

고마워, 대시. 하지만 "코어 파일에 첨부 할 때 오류가 발생하여 코어 파일에 첨부 할 수 없습니다"라는 오류가 나타납니다. 감사. – Loga