Java Runtime.getRuntime (). Exec () falla después de llamarla varios cientos de veces

Tengo un programa de Java que ejecuta Runtime.getRuntime (). Exec ("ls -l"); Muchas veces, una vez para cada directorio del sistema.

Mi sistema de prueba tiene más de 1.000 directorios y Runtime.getRuntime (). Exec ("ls -l"); Parece error después de 480 directorios o menos. El mensaje de error que estoy recibiendo es "Error ejecutando exec (). Comando: [ls, -l] Working Directory: null Environment: null". Supongo que se está quedando sin algunos recursos del sistema necesarios o es? ¿Hay alguna forma de procesar todos los directorios sin error?

Comentario relativo de una respuesta:

Debo aclarar que estaba usando adb.exe de Android SDK. Quería ejecutar varias veces Runtime.getRuntime (). Exec ("adb shell ls -l") en diferentes directorios.

    3 Solutions collect form web for “Java Runtime.getRuntime (). Exec () falla después de llamarla varios cientos de veces”

    Debe cerrar explícitamente los flujos de entrada / salida cuando se utiliza 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(); } } 

    Sería mejor usar java.io.File y los métodos apropiados en esas clases para caminar y manipular el sistema de archivos.

    Usted no dice por qué está haciendo este comportamiento degenerado de esta manera, pero aquí es un ejemplo de la lista de todos los archivos en un árbol .

    Tengo un programa de Java que ejecuta Runtime.getRuntime (). Exec ("ls -l"); Muchas veces, una vez para cada directorio del sistema.

    ¿Por qué? Algo malo con File.listFiles() ?

    No es necesario ejecutar 'ls' ni siquiera una vez.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.