调用操作系可执行的命令
.exec方法:
?public Process exec(String cmdarray[], String[] envp, File dir)
参数:?cmdarray 命令及参数组成的数组:可执行的命令字符串,用空格分隔而生成的数组
? ? ? ? ? ??envp 每一个元素为一个环境变量,每个元素格式 :变量名=变量值
? ? ? ? ? ???dir 指定子进程的工作目录
? ? ? ? ? 实际是调用??ProcessBuilder ?实现的,源码:
? ? ? ? ?
abstract ?void
destroy()
??????????杀掉子进程。abstract ?int
exitValue()
??????????返回子进程的退出代码。 0正常结束abstract ?InputStream
getErrorStream()
??????????获取子进程的标准错误流(stderr)。abstract ?InputStream
getInputStream()
??????????获取子进程的标准输入流(stdout )。abstract ?OutputStream
getOutputStream()
??????????获取子进程的标准输出流(stdin)。abstract ?int
waitFor()
??????????导致当前线程等待,一直要等到由该Process
对象表示的进程已经终止。并返回进程的退出代码,?0正常结束。?
某些平台为进程的输出流提供有限的缓冲区大小,当缓冲区满时,可能导至进程阻塞甚至死锁。
?
因此即使不需要进程的输出,最好也把输出流读出来,避免缓冲区满导至进程阻塞。
?
Process 使用的方式:
?1.读取标准输出流和标准错误输出流
?2.调用waitFor 方法等待进程结束,并获得进程退出码,根据退出码判读进程是否正常结束。
?
?