2012-03-09 14 views
5

No sé si es posible, pero quiero ver la respuesta de mi archivo .bat en Java.Obteniendo respuesta de la línea de comando en Java

¡O un booleano de algo que puedo ver que todo iba bien! Y si hubo algunos errores, puedo ver los errores en Java.

Gracias

+0

Su pregunta es bastante clara. ¿Estás hablando solo de imprimir en la consola desde tu programa Java? (use System.out.println()). No estoy seguro de dónde entra el archivo .bat. –

+0

Lo siento, estaba ejecutando el archivo .bat en la línea de comandos de Windows. Pero estoy creando un programa para usuarios, por lo que no es la mejor manera de ejecutar el archivo bat solo y los usuarios no reciben ningún comentario. ¡Espero que ahora esté más claro! – Gynnad

Respuesta

2

Tome un vistazo a estos ejemplos de código para ejecutar comandos shell a través de java: Execute an external program

Los ejemplos de código anterior no utilizan ProcessBuilder y por lo tanto no se limitan a Java 1.5 y superior

+0

¡Gracias, había un montón de código que es útil para mí! – Gynnad

5

necesita ejecutar usando el ProcessBuilder (siempre y cuando se está ejecutando Java 1.5 o superior, si no comprobar la respuesta de Alex)

Si ejecuta:

Process process = new ProcessBuilder("mybat.bat").command(); 

Con el Process puede llamar al

InputStream errorStream = process.getErrorStream(); 

Capturará la salida del bate a stderr.

También puede usar getOutputStream() en el proceso para obtener sdtout o consultar el código de retorno con exitCode().

+0

El método ProcessBuilder solicita una matriz de cadenas; si utilizo el archivo bat, no funcionará. – Gynnad

+0

@Gynnad ¿Qué quieres decir con usar el archivo bat? Estoy pasando una cadena describiendo el archivo bat (ya sea la ruta del archivo bat o si está en la ruta del sistema y luego solo el nombre del archivo bat) Se describe bien en la documentación de ProcessBuilder (enlace proporcionado en la respuesta). Si está utilizando Java 1.5 o superior, debería usar ProcessBuilder. – zode64

Cuestiones relacionadas