Hola a todos.....................
Quisiera saber si se podria ejecutar un archivo *.bat desde java, bien sea 'JSP' o alguna clase..........................y si es el caso, algun ejemplito.....................GRACIAS
| ||||
Si fichero.bat es
Código:
Y testbat.javaecho hola pause
Código:
Me compila sin error y se ejecuta sin error , pero no veo la shell de dos con hola ... ¿? public class testbat { public static void main(String[] args){ Runtime aplicacion = Runtime.getRuntime(); try{aplicacion.exec("cmd.exe /K C:/java/fichero.bat"); } catch(Exception e){System.out.println(e);} } } |
| ||||
.bat desde JAVA Hola dogduck!!!......gracias por la respuesta.................. mira.........utilice este codigo y me funciono de maravilla....mira a ver si te funciona a ti tambien................. Código PHP:
__________________ La mayor frustración es saber todas las respuestas, pero que nadie te haga las preguntas :Zzz: . |
| |||
La consola no la vais a ver, ya que la ejecuta internamente el programa. En cuanto a leer la salida del proceso que se ejecuta, desafortunadamente a veces no es tan sencillo como leer unicamente el InputStream, ya que tambien hay un InputStream para los errores y si se escribe algo ahi y no lo lees, se puede bloquear tu programa. Mas información aquí: http://www.javaworld.com/javaworld/j...229-traps.html |
| |||
Re: Ejecutar .bat desde Java Buenas a todos, Estoy tratando de ejecutar un comando en cmd, mas concretamente un javac para compilar unos fuentes, y el problema es que no me reconoce el comando javac, mientras que si lo hago manualmente si me lo reconoce. Porque puede ser? Y otro problema que tengo esque al ejecutar el cmd desde el programa, este se me queda bloqueado, que hay que hacer para que termine la ejecucion del cmd y se retorne el control al programa que lo ha lanzado? |
| |||
Re: Ejecutar .bat desde Java Tengo el mismo problema que vosotros, al querer ejecutar un .bat, desde java, pero de manera similar se podra hacer con un .exe externo,no? Mi pregunta es la siguiente, como consigo determinar el directorio donde esta instalada mi aplicación, me refiero a dar el path relativo a la aplicación desarrollada en java. Me refiero a cargar un .exe de manera similar a como cargo imagenes o iconos, poniendo un "/icons/iconodibujo.gif" o similar. Gracias, y un saludo |
| |||
Re: Ejecutar .bat desde Java 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:
Saludos y gracias por vuestra ayuda 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(); } } |
| |||
Re: Ejecutar .bat desde Java Gracias por tu respuesta amigo, Pues no tiene el tipico pause, de hecho si lo ejecuto desde windows(el .bat), la ventana de comandos se abre y desaparece al momento.. |
| |||
Re: Ejecutar .bat desde Java hola a todos Yo tenia la misma curiosidad por hacer ejecutar un bat desde java y gracias a este foro lo logre, por eso quiero compartir mi programa el cual crea un bat lo ejecuta y despues lo borra...xd import java.awt.*; import javax.swing.*; import java.io.*; import java.io.File.*; public class ins extends JFrame { File nombrearchivo,nombrearchivo2,nombrearchivo3; String auxiliar; public ins() { JFileChooser selector = new JFileChooser(); selector.setFileSelectionMode(JFileChooser.FILES_O NLY); selector.setDialogTitle("Archivo a Copiar"); selector.setApproveButtonText("Si"); int resul = selector.showOpenDialog(this); if (resul==JFileChooser.CANCEL_OPTION) return; nombrearchivo = selector.getSelectedFile(); if (nombrearchivo==null||nombrearchivo.getName().equa ls(" ")) { JOptionPane.showMessageDialog(this,"Nombre Invalido"); return; } File nombrearchivo2 = new File("c:\\eje.bat"); try { PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(nombrearchivo2))); pw.println("cd " + nombrearchivo.getParent()); pw.println("attrib -h " + nombrearchivo.getName()); pw.println("del " + nombrearchivo.getName()); pw.close(); } catch (IOException io) { JOptionPane.showMessageDialog(this,"Error al Abrir el ejecutar"); } try { String nom = nombrearchivo.getPath(); Process p = Runtime.getRuntime().exec ("cmd /c c:\\eje.bat"); InputStream is = p.getInputStream(); BufferedReader br = new BufferedReader (new InputStreamReader(is)); while ((auxiliar=br.readLine())!=null) System.out.println(auxiliar); } catch (Exception e) { JOptionPane.showMessageDialog(this,"Error al Abrir el ejecutar"); } nombrearchivo2.delete(); if (nombrearchivo.exists()) JOptionPane.showMessageDialog(this,"no se borro el archivo"); setSize(300,150); setVisible(true); } public static void main (String args[]) { ins aplicacion = new ins(); aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE); } } |
| ||||
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 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:
Saludos y gracias por vuestra ayudapublic 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(); } } |
| ||||
Re: Ejecutar .bat desde Java Cita: Salu2 C:\Documents and Settings\admin.server>cmd /? Inicia una nueva instancia del intérprete de comandos de Windows CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] cadena] /C Ejecuta el comando especificado en cadena y luego finaliza /K Ejecuta el comando especificado en cadena pero sigue activo /S Modifica el tratamiento de cadena después de /C o /K (consultar más abajo) /Q Deshabilita el eco /D Deshabilita le ejecución de los comandos de AutoRun del registro (consultar más abajo) /A Utiliza ANSI para la salida de comandos internos hacia una canalización o un archivo /U Utiliza UNICODE para la salida de comandos internos hacia una canalización o un archivo /T: fg Configura los colores de primer y segundo plano (para obtener más información, consulte COLOR /?) /E:ON Habilita las extensiones de comando (consultar más abajo) /E:OFF Deshabilita las extensiones de comando (consultar más abajo) /F: ON Habilita los caracteres de terminación de los nombres de archivos y directorios (consultar más abajo) /F: OFF Deshabilita los caracteres de terminación de los nombres de archivos y directorios (consultar más abajo) /V: ON Habilita la extensión de variables de entorno retardada usando ! como delimitador. Por ejemplo, /V: ON permitirá que !var! extienda la variable var en tiempo de ejecución. La sintaxis var extiende variables en tiempo de entrada, lo cual es diferente cuando se está dentro de un bucle FOR. /V: OFF Deshabilita la extensión de variables de entorno retardada. ............................. |
| |||
Re: Ejecutar .bat desde Java Cita: Yo me estoy volviendo loca porque quiero ejecutar un programa que queda esperando que presione cualquier tecla. Lo que quiero es que en vez de presionando una tecla, se reactive cuando se presione un button.Podeis ayudarme? |
| |||
Respuesta: Ejecutar .bat desde Java Amigos Como puedo hacer para ejecutar un BAT remoto. Tengo un bat que lo quiero ejecutar desde otro servidor, mis servidores son WINDOW. Tengo sus ejemplos mencionados y me funciona bien pero para un bat local. Les agradesco de antemano. |
| ||||
Respuesta: Ejecutar .bat desde Java Si quieres correr un archivo bat de tu servidor tienes que hacerlo mediante jni de java: primero te creas una libreria (dll-windows)(os-linux) en las librerias podrias poner metodos con parametros que reciban valor de comando: de ahi colocas la libreria en el directorio o path donde se encuentran las librerias de java en caso de jni aplicacion de escritorio ("C:\Archivos de programa\Java\jdk1.6.0_17\bin" ó "path de tu aplicacion") si es aplicacion web("C:\Archivos de programa\Apache Software Foundation\Apache Tomcat 6.0.18\bin") y desde ahi veras que se ejecuta los comando que quieras es mas asta aparece la consola y te muestra la informacion que necesitas segun la consulta mediante comandos Personalmente si se que funciona tanto lado de aplicacion escritorio como de web http://static.forosdelweb.com/fdwtheme/images/smilies/silbar.gif |