मैं अपने जावा प्रोग्राम से कमांड प्रॉम्प्ट कमांड चलाने के लिए रनटाइम का उपयोग कर रहा हूं। हालाँकि, मुझे इस बात की जानकारी नहीं है कि मैं आउटपुट कैसे प्राप्त कर सकता हूँ।
यहाँ मेरा कोड है:
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
मैंने करने की कोशिश की System.out.println(proc);
लेकिन वह कुछ भी वापस नहीं आया। उस कमांड के निष्पादन को अर्धविराम द्वारा अलग किए गए दो नंबरों को वापस करना चाहिए। मैं इसे प्रिंट करने के लिए एक चर में कैसे प्राप्त कर सकता हूं?
यहाँ अब मैं उपयोग कर रहा है कोड है:
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
लेकिन मुझे अपने आउटपुट के रूप में कुछ भी नहीं मिल रहा है, लेकिन जब मैं उस कमांड को खुद चलाता हूं तो यह ठीक काम करता है।
pwd && ls
केवल एक फ़ाइल निष्पादित नहीं कर रहा है, जब आप ऐसा करते हैं कि शेल में यह निष्पादन/bin/pwd
और/bin/ls
निष्पादन दोनों को निष्पादित करता है । यदि आप इस तरह का सामान करना चाहते हैं तो जावा में आपको कुछ ऐसा करने की आवश्यकता होगी{"/bin/bash","-c", "pwd && ls"}
। आपके पास शायद अब सवाल नहीं है, लेकिन अन्य लोग शायद इसलिए मुझे लगा कि मैं इसका जवाब दे सकता हूं।