से खोल कमांड निष्पादित करना मैं जीएनयू/लिनक्स प्लेटफ़ॉर्म पर जावा एप्लिकेशन से शेल कमांड निष्पादित करने का प्रयास कर रहा हूं। समस्या यह है कि स्क्रिप्ट, जो एक और जावा एप्लिकेशन कहती है, कभी समाप्त नहीं होती है, हालांकि यह सफलतापूर्वक बैश से चलती है। मैंने इसे डीबग करने की कोशिश की:जावा
(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);
ऐसा लगता है कि यह कुछ खत्म होने की प्रतीक्षा करता है। कोई विचार?
धन्यवाद, Laurentiu
आप कह रहे हैं कि दूसरी जावा प्रोग्राम जल्दी से खत्म करने के लिए उम्मीद है, लेकिन यह अभी भी खोल लागू चारों ओर लटका हुआ है? क्या आपने पुष्टि की है कि दूसरी जावा प्रक्रिया वास्तव में समाप्त हो गई है (प्रक्रिया सूची में चकित)? –
हां मैंने प्रक्रिया सूची की जांच की है और प्रक्रिया अभी भी वहां है। मुझे लगता है कि डॉस्मिथ ने मेरे प्रश्न का उत्तर दिया। –
ऐसा लगता है कि जावा से प्रोसेस क्लास बहुत धीमी है। मैंने शैवाल से उत्पादन (गैर-वर्बोज़) पैरामीटर के साथ जावा एप्लिकेशन शुरू किया और यह थोड़ी देर के बाद समाप्त हो गया। –