Diferencia entre ProcessBuilder.start() y Runtime.exec()

Diferencia entre ProcessBuilder.start() y Runtime.exec()

Ver Sección – Mi lado Informático

Estos dos métodos hacen casi la misma acción: Devolver una clase de tipo Process para poder seguir el proceso lanzado.

La diferencia entre ProcessBuilder.start() y Runtime.exec() es la forma en cómo hacen dicha acción:

ProcessBuilder.start()
  • Ejecuta la acción definida en la creación de la clase ProcessBuilder y no recibe ningún tipo de parámetro.
    • El constructor de esta clase tiene dos formas de trabajar:
      • Una forma en la que recibe una lista de cadenas (List<String>).
      • Otra forma en la que recibe un número indeterminado de cadenas.
        • Estos parámetros son el nombre del programa a ejecutar y sus argumentos.
Runtime
  • Clase que gestiona el proceso de ejecución de la aplicación java. 
    • El método estático Runtime.getRuntime() nos da mucha más versatilidad de ProcessBuilder:
      • Creamos el objeto con Runtime.getRuntime()
        • Una vez creado el objeto podemos llamar a una de las 6 versiones del método exec para lanzar un programa externo y devolver un objeto de tipo Process que nos servirá para gestionar ese proceso.
          • Como la clase runtime no se ha creado usando las especificaciones de un programa concreto,  podemos usar exec para ejecutar tantos procesos diferentes como queramos.
            • El método exec permite:
              • Especificar un programa a ejecutar junto con sus argumentos
              • La posibilidad de incluir variables de entorno y el directorio de trabajo de la aplicación a ejecutar.
Más info

Difference between ProcessBuilder and Runtime.exec()

¿Como Usar El Método ProcessBuilder De Java?



Listado de Comandos para CMD (MS-DOS) en Windows