如何使用Java 调用系统命令或程序的方法

参考:nowjava.com/article/15524
作用:需要调用系统外部的某个程序,此时就可以用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
本作品采用《CC 协议》,转载必须注明作者和本文链接
zhaozhangxiao
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!