Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con getRuntime().exec

Estas en el tema de Duda con getRuntime().exec en el foro de Java en Foros del Web. Hola a todos!! Disculpen las molestias, pero estoy muy atascado con un programa. El hecho es que necesito ejecutar sobre linux unas instruccion por lineas ...
  #1 (permalink)  
Antiguo 05/02/2014, 17:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Duda con getRuntime().exec

Hola a todos!!

Disculpen las molestias, pero estoy muy atascado con un programa. El hecho es que necesito ejecutar sobre linux unas instruccion por lineas de comando(lo que sería el cmd para windows). El hecho es que para realizar esas instrucciones uso el siguiente código:

Código Java:
Ver original
  1. private void prueba(){
  2. Process process;
  3.         String s;
  4.         try {
  5.             process = Runtime.getRuntime().exec("comando a ejecutar por la consola");
  6.             InputStream p = process.getInputStream();
  7.             BufferedReader stdInput = new BufferedReader(new InputStreamReader(p));
  8.             while ((s = stdInput.readLine()) != null) {
  9.                     System.out.println("--- "+s);
  10.             }
  11.         } catch (IOException e) {
  12.             // TODO Auto-generated catch block
  13.             e.printStackTrace();
  14.         }
  15. }


Por algún mótivo para algunas instrucciones funciona bien y para otras no. Si hago
Código Java:
Ver original
  1. process = Runtime.getRuntime().exec("dir");
Funciona perfecto, pero si quiero hacer
Código Java:
Ver original
  1. process = Runtime.getRuntime().exec("hdparm ");
no me muestra nada. Inclusive en algunas instrucciones particulares, ni si quiera me lanza una exception.

Alguno tiene idea de por qué puede ser??

MUCHAS GRACIAS DESDE YA!!
  #2 (permalink)  
Antiguo 06/02/2014, 08:03
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Duda con getRuntime().exec

Además de la salida estándar, los comandos tienen una salida de error a la que puedes acceder con process.getErrorStream().

El comando "hdparm" sin parámetros saca un texto indicando cuales son las opciones del comando, pero lo hace por la salida de error que no estás leyendo, no por la salida estandar.

Para hacer bien la llamada a getRuntime(), deberías tener dos hilos, uno leyendo la salida estándar y otra la de error.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:07.