java执行命令行程序

java执行命令行程序

1、Process对象

构造Process对象:

(a)使用java.lang.Runtime提供的方法exec(String command),使用它的作用与直接在linux shell或windows cmd下直接输入command作用一致,它会返回一个Process的实例。

(b)使用ProcessBuilder类的start()方法,即可返回一个Process实例。(需要注意的是,ProcessBuilder的构造函数接受的参数列表为可变参数列表,在java中声明语法为void function(type… vars))这里的Process已经是一个正在运行的进程了。

2、Runtime的使用

Runtime run = Runtime.getRuntime(); //获取应用运行环境的对象
run.exec("cmd /c set CLASSPATH=D:\\ && javac D:\\a.java && java a");

JavaSE5之前使用Runtime的exec方法执行本地命令.在JavaSE5之后,可以使用ProcessBuilder执行本地命令.

3、ProcessBuilder的使用

public void exec() {
    ProcessBuilder processBuilder = new ProcessBuilder();
    List<String> command = "python3 run.py";
    processBuilder.command(command);
    //将标准输入流和错误输入流合并,通过标准输入流读取信息
    processBuilder.redirectErrorStream(true);
    try {
        //启动进程
        Process start = processBuilder.start();
        //获取输入流
        InputStream inputStream = start.getInputStream();
        //转成字符输入流
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "gbk");
        int len = -1;
        char[] c = new char[1024];
        StringBuffer outputString = new StringBuffer();
        //读取进程输入流中的内容
        while ((len = inputStreamReader.read(c)) != -1) {
            String s = new String(c, 0, len);
            outputString.append(s);
            System.out.print(s);
        }
        inputStream.close();

        int code = start.waitFor();
        return code;
    } catch (IOException e) {
        e.printStackTrace();
    }
}

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦