如何解决Java Runtime.getRuntimeexec调用数百次后失败
使用时,您应该明确关闭输入/输出流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();
}
}
解决方法
我有一个执行Runtime.getRuntime()。exec(“ ls -l”);的Java程序。很多次,对于系统中的每个目录一次。
我的测试系统有1000多个目录和Runtime.getRuntime()。exec(“ ls -l”);
似乎在480个目录后出错。我收到的错误消息是“运行exec()时出错。命令:[ls,-l]工作目录:空环境:空”。我猜它已经用完了一些必需的系统资源,或者是吗?有什么方法可以处理所有目录而不会出错吗?
来自答案的相对评论:
我应该澄清一下,我正在使用Android SDK的adb.exe。我想在不同的目录上多次执行Runtime.getRuntime()。exec(“
adb shell ls -l”)之类的东西。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。