2012-04-15 2 views
0

Я попытался выполнить 'jmap -dump: format = b; файл»команду в Runtime.exec(), но она не будет выполняться, когда другие команды, такие как дата, PWD работают нормально. может кто-нибудь знает почему?JMAP -dump не excuted на java: runtime.exec()

государственной статической силы команды (String s) {

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

Смежные вопросы