Ver Mensaje Individual
  #15 (permalink)  
Antiguo 07/08/2007, 10:38
Avatar de Marcos1.0
Marcos1.0
 
Fecha de Ingreso: agosto-2007
Ubicación: Chilangolandia
Mensajes: 1
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Ejecutar .bat desde Java

Los codigos que aqui mencionan me ayudaron mucho ya que yo queria hacer lo mismo que ustedes: ejecutar un bat desde java, ahora bien tambien tuve complicaciones como algunos compañeros de aqui, entre ellas la que no me regresara el control a mi clase, como lo solucione?

Bueno muy sencillo al final de su archivo o fichero (he visto españoles aqui jejeje) .bat, agreguen el comando exit con eso terminara retornara el control a la clase. ejemplo:

echo "archivo bat"
dir C:\*
exit


Saludos y suerte

Cita:
Iniciado por timie Ver Mensaje
Buenas,

Mi problema es el siguiente:

Tengo una aplicación de ventanas que ejecuta un .bat como aqui se esta comentando, hasta aqui todo perfecto, pero un a vez k termina de ejecutar el .bat, la aplicación de ventanas se queda colgada, y tengo que cerrarla desde el administrador de tareas. Como hago para que una vez ejecutado el .bat el programa continue con su ejecución?

Pongo aqui el metodo que uso para ejecutar el comando:

Código:
public void ejecutarComando(String comando) { 		        
  		 try
		        {                 
  		            Runtime rt = Runtime.getRuntime();
  		            System.out.println("Execing " + comando);
  		            Process proc = rt.exec(comando);
  		            // any error message?
  		            StreamGobbler errorGobbler = new 
	                StreamGobbler(proc.getErrorStream(), "ERROR");            
 		            
  		            // any output?
  		            StreamGobbler outputGobbler = new 
 		                StreamGobbler(proc.getInputStream(), "OUTPUT");
	  		                
  		            // kick them off
  		            errorGobbler.start();
  		            outputGobbler.start();
	  		                                    
  		            // any error???
  		            int exitVal = proc.waitFor();
  		            System.out.println("ExitValue: " + exitVal); 
  		            rt.runFinalization();
  		        } 
			catch (Throwable t)
	 	          {
		           t.printStackTrace();
	  	          }
	  		    }
Saludos y gracias por vuestra ayuda