मैं एक साधारण जावा प्रोग्राम पर काम कर रहा हूं। यह बस एक और जावा कार्यक्रम संकलित और निष्पादित करता है। मैं संकलन और चलाने के लिए Runtime.exec() फ़ंक्शन का उपयोग कर रहा हूं। संकलन के साथ कोई समस्या नहीं है। लेकिन जब यह चलता है, यदि दूसरे प्रोग्राम को कीबोर्ड से पढ़ने के लिए इनपुट की आवश्यकता होती है, तो मैं इसे मास्टर प्रक्रिया से नहीं दे सकता। मैंने GetOutputStream() फ़ंक्शन का उपयोग किया। लेकिन यह मदद नहीं कर सका। मैं अपना कोड प्रदान करूंगा।किसी अन्य जावा प्रोग्राम से एक जावा प्रोग्राम चला रहा है
public class sam {
public static void main(String[] args) throws Exception {
try {
Process p = Runtime.getRuntime().exec("javac sam2.java");
Process p2 = Runtime.getRuntime().exec("java sam2");
BufferedReader in = new BufferedReader(
new InputStreamReader(p2.getInputStream()));
OutputStream out = p.getOutputStream();
String line = null;
line = in.readLine();
System.out.println(line);
input=input+"\n";
out.write(input.getBytes());
p.wait(10000);
out.flush();
}catch (IOException e) {
e.printStackTrace();
}
}
}
यह मेरा मास्टर प्रोग्राम (sam.java) है।
निम्नलिखित कोई समस्या नहीं है, अगर मेरी दूसरी कार्यक्रम केवल मुद्रण बयान है sam2.java
public class sam2 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("Enter the number..\n");
str = br.readLine();
System.out.println(Integer.parseInt(str));
}
}
का कोड है। लेकिन समस्या तब उत्पन्न होती है जब मुझे दूसरे से कुछ पढ़ना पड़ता है।
आपको सैम के एसटीडीआईएन से सैम 2 तक कुछ प्रकार की पाइप करना होगा, लेकिन इससे अधिक परेशानी हो सकती है। –
कृपया जावा नामकरण सम्मेलनों को सीखें और उनसे चिपके रहें, यहां: वर्ग के नाम को अपरकेस अक्षर से शुरू करना चाहिए। – kleopatra
मैं एक साधारण उदाहरण पेश करने की कोशिश कर रहा था। आपकी सलाह के लिए धन्यवाद .. :) – BBHeeMAA