जावा में, कमांड चलाने के लिए Runtime.getRuntime().exec() का उपयोग करने से प्रक्रिया को कैप्चर करने की अनुमति मिलती है आउटपुट और त्रुटि धाराएँ। हालाँकि, ऐसे मामलों में जहां आउटपुट पुनर्निर्देशन वांछित है, यह विधि अकेले अप्रभावी साबित हो सकती है।
Runtime.getRuntime().exec() को कमांड के साथ नियोजित करते समय सुविधा आउटपुट पुनर्निर्देशन, जैसे > , पुनर्निर्देशन कार्रवाई विफल हो सकती है। लक्ष्य फ़ाइल नहीं बनाई जा सकती है, और आउटपुट स्ट्रीम अनिर्देशित रहती है।
आउटपुट को सफलतापूर्वक पुनर्निर्देशित करने के लिए, इसके बजाय प्रोसेसबिल्डर का उपयोग करने पर विचार करें। यह वर्ग प्रक्रिया निर्माण के लिए अधिक विस्तृत दृष्टिकोण प्रदान करता है, जो आउटपुट और त्रुटि स्ट्रीम पुनर्निर्देशन के विनिर्देश को सक्षम करता है।
आउटपुट पुनर्निर्देशन के लिए प्रोसेसबिल्डर का उपयोग कैसे करें:
ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException
प्रोसेसबिल्डर का उपयोग करके, आप मानक आउटपुट और मानक त्रुटि स्ट्रीम दोनों को वांछित फ़ाइल पर रीडायरेक्ट कर सकते हैं, यह सुनिश्चित करते हुए कि कमांड से आउटपुट कैप्चर किया गया है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3