各位,谢谢你光监本贴。提问:
我用Process ps = Runtime.getRuntime.exec("java mytest");
执行一个java class文件,在这个文件中,有一个system.in要执行输入,但运行此文件时,根本输不进去。我用BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(ps.getOutputStream()));
bw.write("lllll\n");  来执行输入,根本子进程无法获取这个输入。大侠,怎么才能让子进程输入?谢谢!

解决方案 »

  1.   

    搞定了,哈。原来是没有用bw.flush()来清空缓冲区。用buffered的IO包装流,就是这点麻烦。浪费我一个上午时间。
      

  2.   

    呵,我现在也遇到同样的问题。
    一块学习了。
    我是用PrintWriter(peocess.getOutputStream(), true);来写的。
    不过在exec()的参数中还有写问题。
    如我想在cmd下执行:
    cmd>servertool -ORBInitialPort 1050
    然后进入servertool环境后继续执行:
    servertool>register -server ServerName -classpath classpath
    要如何执行?
    还有那个命令的参数赋值问题,exec有时候总不能识别!
    如果写成String[] env;的话,应该怎么写?
    多谢!
      

  3.   

    Runtime run=Runtime.getRuntime();
    run.exec("cmd /c javac Calculator.java");
    run.exec("cmd /c java Calculator");
    Calculator是个有界面的程序,为什么编译成功,却运行不出来?
    Calculator程序文件在当前程序的目录文件中的。