I have a Java program that executes Runtime.getRuntime().exec("ls -l"); many times, once for each directory in the system.
My test system has more than 1,000 directories and Runtime.getRuntime().exec("ls -l"); seems to error out after 480 directories or so. The error message I'm getting is is "Error running exec(). Command: [ls, -l] Working Directory: null Environment: null". I'm guessing it's running out of some required system resources or is it? Is there any way to process all directories without erroring out?
Relative comment from an answer:
I should clarify that I was using Android SDK's adb.exe. I wanted to execute something like Runtime.getRuntime().exec("adb shell ls -l") multiple times on different directories.
You should explicitly close the input/output streams when using 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();
}
}