ytw*_*ytw 4 java android exec runtime.exec
我有一个Java程序执行Runtime.getRuntime().exec("ls -l"); 很多次,一次为系统中的每个目录.
我的测试系统有超过1,000个目录和Runtime.getRuntime().exec("ls -l"); 似乎在480个目录之后出错了.我得到的错误消息是"运行exec()时出错.命令:[ls,-l]工作目录:null环境:null".我猜它已经耗尽了一些必需的系统资源,或者是吗?有没有办法处理所有目录而不会出错?
答案的相对评论:
我应该澄清一下我使用的是Android SDK的adb.exe.我想在不同的目录上多次执行Runtime.getRuntime().exec("adb shell ls -l")之类的东西.
使用时应明确关闭输入/输出流Runtime.getRuntime().exec.
Process p = null;
try {
p = Runtime.getRuntime().exec("ls -l");
//process output here
p.waitFor();
} finally {
if (p != null) {
p.getOutputStream().close();
p.getInputStream().close();
p.getErrorStream().close();
}
}
Run Code Online (Sandbox Code Playgroud)