我試圖從GNU/Linux平臺上的Java應用程序執行shell命令。問題是調用另一個Java應用程序的腳本永遠不會結束,儘管它從bash成功運行。我試圖調試它:從Java執行shell命令
(gdb) bt #0 0xb773d422 in __kernel_vsyscall() #1 0xb7709b5d in pthread_join (threadid=3063909232, thread_return=0xbf9cb678) at pthread_join.c:89 #2 0x0804dd78 in ContinueInNewThread() #3 0x080497f6 in main()
我試着用:ProcessBuilder();和Runtime.getRuntime()。exec(cmd);
看起來像是在等待某件事完成。有任何想法嗎?
感謝, Laurenţiu
你是說第二個Java程序,預計很快完成,但仍外殼調用它徘徊?你確定第二個Java過程實際上已經完成(cheking進程列表)嗎? – 2010-06-17 14:21:58
是的,我檢查過程列表,過程仍然存在。我想那個史密斯回答了我的問題。 – 2010-06-18 15:50:09
看起來來自Java的Process類非常慢。我使用生產(非詳細)參數從shell啓動了java應用程序,並在一段時間後完成。 – 2010-06-17 14:26:31