通过另一个java程序运行具有输入语句的java程序

时间:2015-04-27 12:48:24

标签: java cordova

我正在尝试开发一个在线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的“输入名称”。然而,在那之后没有任何事情发生。

1 个答案:

答案 0 :(得分:0)

它与“运行时”不一样。调用exec启动一个新进程。 与正在运行的进程的交互应该使用来自执行进程的输入和输出流。 例如,使用以下内容:

Process p = Runtime.getRuntime().exec(*******);
InputStream is = p.getInputStream();
InputStream es = p.getErrorStream();
OutputStream os = p.getOutputStream(); 

从一个简单的例子开始,手动将param传递给进程,然后看看如何连接来自不同进程的流