আমি আমার জাভা প্রোগ্রাম থেকে কমান্ড প্রম্পট কমান্ডগুলি চালানোর জন্য রানটাইম ব্যবহার করছি। তবে, আমি কীভাবে কমান্ডটি আউটপুট পেতে পারি তা সম্পর্কে আমি অবগত নই।
আমার কোডটি এখানে:
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"}
। আপনার কাছে সম্ভবত আর প্রশ্নটি নেই তবে অন্যান্য লোকেরা সম্ভবত আমার ভেবেছিল আমি এর উত্তর দিতে পারি।