偶然看到这句 Process p = Runtime.getRuntime().exec(cmd.toArray());
两个疑问:1.请问为何java需要这么一种命令下发的机制呢,直接调应用程序的接口不行吗?为是了封装java所运行的不同系统上的cmd函数吗?
2.这个所谓的Process 是起一个进程吗?怎么理解?

解决方案 »

  1.   

    Runtime.getRuntime().exec()是创建了一个进程,并返回Process 子类的一个实例。
    Process的实例主要用来控制进程的,比如让进程处于等待状态等。
    楼主可以去查看一下JAVA的API,上面应该说得很明白。
      

  2.   

    楼主是从c++转行做Java的吧关注
      

  3.   

    在系统运行的过程中有时需要与操作系统或系统中的软件进行交互,如:重新启动服务器等。这时就可以使用 Runtime.getRuntime().exec 
    这只是java体系留出来的一个与其他系统交互的方式。使其可以有更好的扩展性。并不是整个体系的核心部分,不必太多的关注。
      

  4.   

    由于Java考虑的是跨操作系统,如果像C/C++那样直接调用系统API,就不能很好的跨操作系统
      

  5.   

    该方法创建了一个进程,Process p = Runtime.getRuntime().exec(cmd.toArray());
    一般情况与操作系统相关,使用过多可移植性较差,建议少用。
    并行处理可以通过线程实现,相关信息可以查询网上资料。
      

  6.   

    不是c++,是做通信设备的C,java纯新手
      

  7.   

    是创建进程吗,还是返回当前进程的句柄,不是java只有java虚拟机这一个进程,而所有程序都跑在这个虚拟机进程下面的线程(或多线程)吗?
    小弟新手,能不能再解释的稍稍详细一点,多谢!