从另一个 java 程序运行 Java 程序
2022-09-03 09:38:46
我正在研究一个简单的java程序。它只是编译并执行另一个java程序。我正在使用 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));
}
}
没有问题,如果我的第二个程序只有打印语句。但是,当我不得不从另一个人那里读到一些东西时,问题就出现了。