10.02 Java执行命令(shell

在Java中有两种方式来执行(shell/cmd)命令,总共涉及5个主要的类

Process类介绍

Java执行命令(shell/cmd)

◆ 通过ProcessBuilder

ProcessBulder , 是一个 final 类,他有两个构造方法
Java执行命令(shell/cmd)

Java执行命令(shell/cmd)

◆ 通过Runtime的exec方法来执行

 即运行时,表示当前进程所在的虚拟机实例。由于任何进程只会运行于一个虚拟机实例当中,所以在Runtime中采用了单例模式,即只会产生一个虚拟机实例源码中可以看出,由于Runtime类的构造器是private的,所以只有通过getRuntime去获取Runtime的实例。通过源码exec()方法可知,事实上通过Runtime类的exec执行命令的话,最终还是通过ProcessBuilder类的start方法来执行的。
Java执行命令(shell/cmd)

要注意的是,exec方法不支持不定长参数(ProcessBuilder是支持不定长参数的),所以必须先把命令参数拼接好再传进去。


分享到:


相關文章: