我通过 exec
命令在 Android 应用程序中运行一些 shell 命令。
我想检查最后一个命令的结果是什么,例如是否发生任何错误或命令是否成功执行。
例如
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 循环并且不会记录任何内容。
请提出建议。
谢谢
最佳答案
处理完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
关于java - 如何打印没有任何输出的 shell 命令的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946633/