2015-10-05 9 views
6
public static String executeCommand(String command) { 
    StringBuffer sb = new StringBuffer(); 
    Process p; 
    try { 
     p = Runtime.getRuntime().exec(command); 
     p.waitFor(); 
    } BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line = ""; 
     while ((line = reader.readLine()) != null) { 
     sb.append(line + "\n"); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return sb.toString(); 
} 

दिया गया कोड किसी भी आदेश को निष्पादित करने के लिए ठीक काम कर रहा है लेकिन मेरे पास एक आदेश है जो इनपुट के रूप में YES/NO चाहता है। मैं आगे निष्पादन के लिए आदेश कैसे इनपुट दे सकता हूं?तत्काल YES इनपुट

पूर्व।

executeCommand("pio app data-delete model"); 

output- 
[INFO] [App$] Data of the following app (default channel only) will be deleted. Are you sure? 
[INFO] [App$]  App Name: twittermodeling 
[INFO] [App$]  App ID: 14 
[INFO] [App$] Description: None 
Enter 'YES' to proceed: 

तो मैं आगे निष्पादन के लिए उन्हें कैसे दे सकता हूं।

धन्यवाद

+1

क्या आप हमें इनपुट स्ट्रिंग के लिए अपेक्षित व्यवहार की तरह उदाहरण दे सकते हैं? – Tirath

+0

यदि मुझे यह मिलता है ... आप 'p.waitFor()' द्वारा लौटाए गए मान का उपयोग करना चाहते हैं ताकि आगे बढ़ने के लिए 'YES' दर्ज करें: '। – Tirath

उत्तर

4

तुम सच में एक यूनिक्स कमांड के पास "हाँ" की जरूरत है, तो आप इसे echo YES | द्वारा उपसर्ग सकता है। echo YES | pio app data-delete model को हटाने को मजबूर होना चाहिए।

runtime.exec() के संदर्भ में सोचा कि पाइप का सही मूल्यांकन नहीं किया जा सकता है, अधिक जानकारी के लिए this post देखें।

हालांकि, सबसे पहले आपको यह करना चाहिए कि क्या पीओओ कमांड में "बल" ध्वज नहीं है, आमतौर पर -f, जो उपयोगकर्ता इंटरैक्शन को छोड़ देगा।

+0

में कुछ और जानकारी दें धन्यवाद। –

+0

आपका स्वागत है! – Aaron

+0

यह टर्मिनल पर ठीक काम कर रहा है लेकिन जब मैं इस कमांड को निष्पादित करता हूं तो EES Ycho | जावा में पियो ऐप डेटा-डिलीट मॉडल, यह –

1

इसे इस तरह कार्य करें:

line = reader.readLine(); 

if (line.toLowerCase().equals("yes")){ 
    .... 
} 
else if (line.toLowerCase().equals("no")){ 
    .... 
} 
else { 
    ... 
} 
+0

मैं इनपुट के रूप में हाँ या नहीं प्रदान करना चाहता हूं ताकि यह आदेश को आगे निष्पादित कर सके। कमांड हाँ या नहीं –

+0

नहीं देता है कृपया हमें अपने प्रश्न – roeygol

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