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

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

2016-01-01 16:43 866 查看
http://blog.csdn.net/arkblue/article/details/7897396

使用到Process和Runtime两个类,返回值通过Process类的getInputStream()方法获取

[plain] view
plaincopy

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
plaincopy

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);

}

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