作用:需要调用系统外部的某个程序,此时就可以用Runtime.getRuntime().exec()来调用,他会生成一个新的进程去运行调用的程序。
使用方式:
需要指定参数一:命令位置;参数二:-c表示先执行第一个参数;参数三:你的命令。 Runtime.getRuntime().exec(new String[]{“/bin/sh”,”c”,”xxx”});
public Process exec(String command)—–在单独的进程中执行指定的字符串命令。
public Process exec(String [] cmdArray)—在单独的进程中执行指定命令和变量
public Process exec(String command, String [] envp)—-在指定环境的独立进程中执行指定命令和变量
public Process exec(String [] cmdArray, String [] envp)—-在指定环境的独立进程中执行指定的命令和变量
public Process exec(String command,String[] envp,File dir)—-在有指定环境和工作目录的独立进程中执行指定的字符串命令
public Process exec(String[] cmdarray,String[] envp,File dir)—-在指定环境和工作目录的独立进程中执行指定的命令和变量
细节:
此方法返回一个java.lang.Process对象,该对象可以得到之前开启的进程的运行结果,还可以操作进程的输入输出流。
Process对象有以下几个方法:
1、destroy() 杀死这个子进程
2、exitValue() 得到进程运行结束后的返回状态
3、waitFor() 得到进程运行结束后的返回状态,如果进程未运行完毕则等待直到执行完毕
4、getInputStream() 得到进程的标准输出信息流
5、getErrorStream() 得到进程的错误输出信息流
6、getOutputStream() 得到进程的输入流
测试模板
import java.io.IOException;
public class HelloWorld {
public static void main(String[] args) {
//System.out.println("Hello World");
try
{
Process process = Runtime.getRuntime().exec("hostname");
System.out.println(process.waitFor());
}catch(IOException | InterruptedException ex){
ex.printStackTrace();
}
}
}
[root@SICAP191 oma]# javac HelloWorld.java
[root@SICAP191 oma]# java HelloWorld
0