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

Evaluar si una aplicacion EXE ha finalizado

Estas en el tema de Evaluar si una aplicacion EXE ha finalizado en el foro de Java en Foros del Web. Bueno, antes que nada gracias por lo que hacen con este magnífico foro xD. El problema: Tengo una clase de Java la cual me ejecuta ...
  #1 (permalink)  
Antiguo 25/01/2007, 14:23
 
Fecha de Ingreso: mayo-2006
Mensajes: 21
Antigüedad: 17 años, 11 meses
Puntos: 0
Evaluar si una aplicacion EXE ha finalizado

Bueno, antes que nada gracias por lo que hacen con este magnífico foro xD.

El problema:

Tengo una clase de Java la cual me ejecuta un archivo .EXE, pero en realidad este .EXE trabaja en linea de comandos, no tengo ningún error en ejecutarlo y no me interesa mucho que se muestre la ventana de símbolo de sistema (Trabaja en background) ya que no lo requiero y realiza lo que quiero. El problema viene en como puedo saber si este .EXE o programa ya ha finalizado????? O sea como es un .EXE que trabaja en linea de comandos, al finalizar el proceso que realiza la aplicación (compresión de ISO) este termina, lo que quiero es que me arroje un Mensaje de que ha finalizado la compresión, pero no logro como hacerlo, no se que condición o que función pueda utilizar, si alguien puede ayudarme, estaré muy agradecido!!

Espero que me hayan entendido.....


GRACIAS
  #2 (permalink)  
Antiguo 25/01/2007, 16:27
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Re: Evaluar si una aplicacion EXE ha finalizado

Hola:

El runtime.exec() te devuelve un Process. Puedes llamar a process.waitFor() que esperará a que termine el programa. Esto puede no funcionar con determinados programas que se relanzan en un proceso separado y devuelven el control inmediatamente.

Otra opción, si puedes modiificar el programa, es que el programa saque por pantalla un texto de que ya ha acabado. Con el process.getInputStream() obtiees un Stream en el que puedes leer la salida del programa.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 25/01/2007, 16:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 21
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: Evaluar si una aplicacion EXE ha finalizado

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

El runtime.exec() te devuelve un Process. Puedes llamar a process.waitFor() que esperará a que termine el programa. Esto puede no funcionar con determinados programas que se relanzan en un proceso separado y devuelven el control inmediatamente.

Otra opción, si puedes modiificar el programa, es que el programa saque por pantalla un texto de que ya ha acabado. Con el process.getInputStream() obtiees un Stream en el que puedes leer la salida del programa.

Se bueno.
Gracias chuidiang por la info, pero no entiendo donde debo poner el Process.waitFor(); hice una prueba y me dice que la variable Process no ha sido inicializada, espero que me puedas especificar como se hace. Aqui dejo un codigo de ejemplo de lo que quiero.... GRACIAS.

Código PHP:
public class ejecutarExe {
    
    public static 
void main(String[] args) {
        
        
Runtime aplicacion Runtime.getRuntime();
        try{
            
aplicacion.exec("ciso.exe [nivel] [file.iso] [file.cso]");
            
// Aqui es donde debo poner el waitFor(); ?????
            // Como lo declaro????

            //Mensaje que aparece despues de acabar el proceso...
            
System.out.print("Proceso finalizado");
        }
        catch(
Exception e){}
    }

  #4 (permalink)  
Antiguo 25/01/2007, 23:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Re: Evaluar si una aplicacion EXE ha finalizado

Hola:

Process p = Runtime.getRuntime().exec("...");
p.waitFor();

Se bueno.
__________________
Apuntes Java
Wiki de Programación
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 12:09.