查找资料的时候发现有两种调用方式:
第一种:
try {
process = processBuilder.start();
successResult = new BufferedReader(new InputStreamReader(
process.getInputStream()));
errorResult = new BufferedReader(new InputStreamReader(
process.getErrorStream()));
String read;
while ((read = successResult.readLine()) != null) {
successMsg.append(read);
}
while ((read = errorResult.readLine()) != null) {
errorMsg.append(read);
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (successResult != null) {
successResult.close();
}
if (errorResult != null) {
errorResult.close();
}
} catch (IOException e) {
e.printStackTrace();
}
if (process != null) {
process.destroy();
}
}
第二种
Process p = Runtime.getRuntime().exec(cmd);
String data = null;
BufferedReader ie = new BufferedReader(new InputStreamReader(p.getErrorStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String error = null;
while ((error = ie.readLine()) != null
&& !error.equals("null")) {
data += error + "\n";
}
String line = null;
while ((line = in.readLine()) != null
&& !line.equals("null")) {
data += line + "\n";
}
第一种在执行的时候会出现缺少环境的问题,第二种可以正常使用,但是使用su命令的时候还是有问题;