2012-02-02 14 views
6

मैं जावा में कुछ इस तरह कर रहा हूँ अभी क्रियान्वित करने के बाद जावा में वापसी कोड मिलता हैकैसे मैं एक खिड़कियों कमांड लाइन आदेश

Process p = Runtime.getRuntime().exec("ping -n 1 -w 100 127.0.0.1") 

मैं कैसे खिड़कियों कार्यकारी कोड को पढ़ने के लिए कर सकते हैं? मुझे पहले से ही कमांड लाइन कमांड को कमांड से कैसे पढ़ा जाए, लेकिन क्या होगा यदि मैं सिर्फ 0 या 1 चाहता हूं कि यह सफल हो या विफल हो?

उत्तर

2
+0

जब तक आप पहले से ही यह सुनिश्चित नहीं कर लें कि प्रक्रिया समाप्त हो गई है, तो आपको इसके बजाय waitFor() का उपयोग करना चाहिए। –

6

उपयोग Process.exitValue() विधि का उपयोग कर सकते हैं। यदि प्रक्रिया अभी तक बाहर नहीं हुई है और पुनः प्रयास की गई है तो आपको अपवाद को संभालने की आवश्यकता होगी।

या, आप Process.waitFor() का उपयोग प्रक्रिया समाप्त होने की प्रतीक्षा के लिए कर सकते हैं और यह प्रक्रिया निकास मूल्य भी वापस कर देगा (increment1 के लिए धन्यवाद)।

+0

process.waitFor() एक्जिट वैल्यू वापस कर देगा, इसलिए प्रक्रिया के बाद की कॉल की आवश्यकता नहीं है .exitValue()। –

+0

@ increment1, बेशक, इसे इंगित करने के लिए धन्यवाद। – hmjd

0

आप

waitFor()
इसे और फिर
exitValue()
प्राप्त करें।

4

कोड की अगली पंक्ति:

int returnCode = p.waitFor(); 

इस ब्लॉक प्रक्रिया पूरी होने तक। यदि आप ब्लॉक करना नहीं चाहते हैं तो आप Process.exitValue() विधि का भी उपयोग कर सकते हैं। Java6 Process class API doc

संबंधित मुद्दे