KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am working on a simple java program. It simply compiles and executes another java program. I am using Runtime.exec() function to compile and run. There is no problem with compilation. but when it runs, if the second program needs an input to read from keyboard, I can't give it from the master process. I used getOutputStream() function. but it couldn't help. I will provide my code. 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(); } } } This is my master program(sam.java). The following is the code of 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)); } } There is no problem, if my second program has only printing statements. But the problem arises when I have to read something from the other.
Tags (comma-separated)
Save Edits
Cancel