使用场景
java与非java程序之间的交互
Runtime
使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。
- exec(String command)
- exec(String command, String envp[], File dir):传递环境变量并标识当前目录
- exec(String cmd, String envp[]):传递环境变量
- exec(String cmdarray[])
- exec(String cmdarray[], String envp[])
- exec(String cmdarray[], String envp[], File dir)
Process
通过Process的getInputStream(),getOutputStream()和getErrorStream()方法可以得到输入输出流,然后通过InputStream可以得到程序对控制台的输出信息,通过OutputStream可以给程序输入指令,这样就达到了程序的交换功能。
process类主要有下面几个方法
- destroy():杀掉子进程
- exitValue():返回子进程的出口值,值 0 表示正常终止
- getErrorStream():获取子进程的错误流
- getInputStream():获取子进程的输入流
- getOutputStream():获取子进程的输出流
- waitFor():导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程,根据惯例,0 表示正常终止;
简单实践
java 代码
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
class Scratch {
public static void main(String[] args) throws Excep