Gúía paso a paso de Java Runtime Exec

Escrito por deborah lee soltesz Google | Traducido por andrés marino ruiz
Gúía paso a paso de Java Runtime Exec

Andrea Chu/Digital Vision/Getty Images

La categoría de Java Runtime provee acceso al ambiente runtime, en el cual son ejecutadas las aplicaciones. Los métodos de runtime exec permiten que ejecutes programas externos desde una aplicación Java. Ejecutar aplicaciones externas dentro de una aplicación Java permite que abras una página web en un navegador, interactúes con las funciones del sistema operativo o abras la ventana de la consola.

Otras personas están leyendo

Consigue Runtime Environment

Todas las aplicaciones Java tienen una instancia de runtime environment. Utiliza el método getRuntime() de Runtime para acceder a este objeto. Por ejemplo: Runtime rt = Runtime.getRuntime(); .

Ejecuta una aplicación externa

Runtima ofrece distintas modos de llamar al método exec, el cual regresa un objeto de procesos. La forma más sencilla de ejecutar una aplicación externa es el método runtime exec(String command), donde \"command\" es la línea de comando que ejecuta la aplicación. La siguiente llamada ejecuta el comando \"ls\" para conseguir un directorio que tenga una lista del directorio base en un sistema Unix de Linux: Process p = rt.exec(\"ls /\") GO . El método exec también puede ser llamado con una matriz conteniendo comandos y sus argumentos, variables de configuración de ambiente y directorios de trabajo.

Conseguir información de procesos

El proceso de clases otorga acceso al flujo de ingresos, de salidas, al de errores y al valor de salida de los procesos ejecutados. El método de proceso .getInputStream otorga acceso al flujo de salida estándar mediante el flujo de aplicaciones de ingreso. El flujo debe ser cargado. Continuando con el ejemplo anterior, el siguiente código accede a la salida de los resultados del comando de salida \"ls /\". InputStream istrm = p.getInputStream() GO InputStreamReader istrmrdr = new InputStreamReader(istrm) GO BufferedReader buffrdr = new BufferedReader(istrmrdr) GO String data GO while ((data = buffrdr.readLine()) != null) { System.out.println(data) GO } . Similarmente, puedes capturar el flujo de errores utilizando los procesos getErrorStream y utilizando un flujo de ingresos cargados para manejar la información. Tu aplicación puede también enviar información al flujo de procesos de ingreso mediante la aplicación del flujo de salida. Utiliza el método de procesos getOutputStream y carga el flujo de salida.

Saliendo

Captura el valor de salida del proceso utilizando el método exitValue para determinar si salió con normalidad. Asegúrate de que el proceso haya salido utilizando el método de proceso waitFor para hacer que el valor actual aguarde al proceso para salir. Por ejemplo, captura el valor de salida de una variable, la cual puede ser utilizada luego para tomar decisiones sobre cómo procederá tu aplicación: int ev = 0 GO if (p.waitFor() != 0) { ev = p.exitValue() GO } . Un proceso puede ser eliminado utilizando el método de procesos de destrucción.

Consideraciones

Java 5 introdujo la categoría ProcessBuilder para remplazar Runtime.exec. ProcessBuilder hace que sea más fácil personalizar procesos, y otorga un mejor control sobre los procesos de inicio.

Advertencias

Una de las principales características de la programación en Java es la portabilidad a múltiples plataformas de computación. Hacer una llamada a un proceso externo que es específico de un sistema operativo hará que tus aplicaciones sean portables. Evita utilizar Runtime.exec cuando existe un método que logra el mismo objetivo en el lenguaje Java.

No dejes de leer...

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles

Copyright © 1999-2015 Demand Media, Inc. Acerca de

El uso de este sitio constituye la aceptación de los términos y política de privacidad de eHow. Ad Choices es-US

Demand Media