我正在尝试开发一个在线Java IDE。我无法从另一个java程序获取输入。
第二个程序:HelloWorld.java
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world..................");
Scanner sc = new Scanner(System.in);
System.out.println("Enter Name");
String name = sc.nextLine();
System.out.println("you entered " + name);
sc.close();
}
}
public class Demo {
public static void main(String[] args) {
Process pro = Runtime.getRuntime().exec(javac HelloWorld.java);
Process pro1 = Runtime.getRuntime().exec(java HelloWorld);
}
}
问题在于,当我编译并运行上述程序时,我在System.out.println("Enter Name");
中获得HelloWorld.java
的“输入名称”。然而,在那之后没有任何事情发生。
答案 0 :(得分:0)
它与“运行时”不一样。调用exec启动一个新进程。 与正在运行的进程的交互应该使用来自执行进程的输入和输出流。 例如,使用以下内容:
Process p = Runtime.getRuntime().exec(*******);
InputStream is = p.getInputStream();
InputStream es = p.getErrorStream();
OutputStream os = p.getOutputStream();
从一个简单的例子开始,手动将param传递给进程,然后看看如何连接来自不同进程的流