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

Consola desplegada de windows

Estas en el tema de Consola desplegada de windows en el foro de Java en Foros del Web. Estimados Estoy desarrollando un programa para hacer backup de mis bases. El tema es que para que se ejecute el comando .bat en windows he ...
  #1 (permalink)  
Antiguo 11/10/2017, 09:35
 
Fecha de Ingreso: septiembre-2011
Mensajes: 8
Antigüedad: 6 años, 3 meses
Puntos: 0
Consola desplegada de windows

Estimados
Estoy desarrollando un programa para hacer backup de mis bases. El tema es que para que se ejecute el comando .bat en windows he tenido que colocar un cmd /c start en la linea del Runtime.getRuntime().exec(). Lo cual abre una ventana DOS que luego no puedo cerrar, y por cada vez que se ejecuta el el programa queda una ventana abierta. Quisiera evitar esto ya que el proceso se corre en un servidor y no estoy constantemente viendo esto. Paso parte del código para ver si alguien puede ayudarme,
Gracias
if(selectGuardarBack == 1) {
//Runtime rt = Runtime.getRuntime();

try {

String comando="\""+Ruta+"\" --opt --user="+Login+" --password="+Passwd+" "+Base+" >\""+rutaFile+"\"\n";

File fcopi=new File("c:\\"+directorioBackup+"\\"+nombreDia+"\\"+" copia_seguridad.bat");
FileWriter fw = new FileWriter(fcopi);
fw.write(comando,0,comando.length());
fw.close();

//Ejecuto el comando con los parametros del backup
try {
Thread.sleep(5000);
}catch (Exception e) {
e.printStackTrace();
}

Runtime.getRuntime().exec("cmd /k start c:\\"+directorioBackup+"\\"+nombreDia+"\\"+"copia_ seguridad.bat"+" cmd /c exit");
Runtime.getRuntime().exec("cmd /k exit"); //NO FUNCIONA
System.out.println("TERMINADO");
}catch(IOException ex) {
System.err.println("Error al ejecutar el Comando exec()");
ex.printStackTrace();
}
}
  #2 (permalink)  
Antiguo 26/10/2017, 10:01
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.338
Antigüedad: 9 años, 3 meses
Puntos: 169
Respuesta: Consola desplegada de windows

class CmdKill
{
public static void main(String args[])
{
try {
Runtime.getRuntime().exec("taskkill /f /im cmd.exe") ;
} catch (Exception e) {
e.printStackTrace();
}
}

}

(Tb puedes usar el PID para apuntar directamente al proceso concreto)
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}



La zona horaria es GMT -6. Ahora son las 23:34.