我通过exec
命令在我的android应用程序中运行了一些shell命令。
我想检查上一个命令的结果,例如是否发生了任何错误或命令已成功执行。
e.g。
Process p = Runtime.getRuntime().exec("chmod 755 " + myFile.getAbsolutePath() + "/fileName");
现在chmod不会打印任何结果,所以如何检查权限是否已被修改。
如果我尝试打印process
对象的输出,例如:
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
StringBuffer output = new StringBuffer();
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
Log.e("output: ", output.toString());
然后调试器永远不会进入while循环&没有记录。
请建议。
谢谢
答案 0 :(得分:1)
处理outputStream后,等待进程退出状态并与0(成功)进行比较。
int retVal = p.waitFor();
if (retVal != 0){
Log.e("Error", "process returned exit status: "+retVal);
}
http://developer.android.com/reference/java/lang/Process.html#waitFor%28%29