您的位置:首页 > 运维架构 > Shell

java调用shell命令并获取执行结果

2017-08-11 10:22 941 查看
使用到Process和Runtime两个类,返回值通过Process类的getInputStream()方法获取

[plain] view
plain copy

package ark;  

  

import java.io.BufferedReader;  

import java.io.IOException;  

import java.io.InputStreamReader;  

import java.util.ArrayList;  

import java.util.List;  

  

public class ReadCmdLine {  

    public static void main(String args[]) {  

        Process process = null;  

        List<String> processList = new ArrayList<String>();  

        try {  

            process = Runtime.getRuntime().exec("ps -aux");  

            BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));  

            String line = "";  

            while ((line = input.readLine()) != null) {  

                processList.add(line);  

            }  

            input.close();  

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

  

        for (String line : processList) {  

            System.out.println(line);  

        }  

    }  

}  

调用shell脚本,判断是否正常执行,如果正常结束,Process的waitFor()方法返回0

[java] view
plain copy

public static void callShell(String shellString) {  

    try {  

        Process process = Runtime.getRuntime().exec(shellString);  

        int exitValue = process.waitFor();  

        if (0 != exitValue) {  

            log.error("call shell failed. error code is :" + exitValue);  

        }  

    } catch (Throwable e) {  

        log.error("call shell failed. " + e);  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: