使用Runtime调用unix 系统命令:      try
         {
           Runtime runtime = Runtime.getRuntime();
          runtime.exec("pwd");
           System.out.println("exec unix shell2");
         } catch (IOException e) {
           e.printStackTrace();
         }
但是没有反应,谁能告诉我为什么吗?谢谢!

解决方案 »

  1.   

             Process r = runtime.exec("cmd");
             byte[] b = new byte[80];
             while (r.getInputStream().read(b) > 0) {
                 System.out.println(new String(b));
             }
      

  2.   

       最好这样:
       
    Process p=r.exec(cmdstr);
    p.waitFor();//等待指令执行完毕
      

  3.   


    确实没有反映,因为Runtime.exec只是启动一个后台进程,并不会弹出所谓的窗口或者有什么输出。Process p=Runtime.getRuntime().exec("pwd");
    p.getInputStream();//获得进程的标准输入流,可以向进程发送进一步的指令,模拟人机交互
    p.getOutputStream();//程序的标准输出流,也就是平常打印在控制台上的信息,通过这个流读取
    p.getErrorStream();//程序的标准错误
    以上代码,是在执行命令后,与命令进行人机交互,获得结果的方式。
      

  4.   

    不好意思,我楼上的input和output写反了。
      

  5.   

    Runtime要和Process组合起来用才可以的。
    Runtime知识执行一个命令,但执行这个命令的结果的通过Process来获取,然后你才能看到执行结果啦。
      

  6.   

    对  你这么执行的效果就如同在按下Win+R之后  输入ping IP一样  一旦命令执行完  窗口就消失了。