Diferencia entre ProcessBuilder y Runtime.exec ()

Estoy tratando de ejecutar un comando externo desde el código de Java, pero hay una diferencia que he notado entreRuntime.getRuntime().exec(...) ynew Process(...).start().

Cuando usasRuntime:

Process p = Runtime.getRuntime().exec(installation_path + 
                                       uninstall_path + 
                                       uninstall_command + 
                                       uninstall_arguments);
p.waitFor();

the exitValue es 0 y el comando termina bien.

Sin embargo, conProcessBuilder:

Process p = (new ProcessBuilder(installation_path +    
                                 uninstall_path +
                                 uninstall_command,
                                 uninstall_arguments)).start();
p.waitFor();

el valor de salida es 1001 y el comando termina en el medio, aunquewaitFor devoluciones

¿Qué debo hacer para solucionar el problema conProcessBuilder?

Respuestas a la pregunta(4)

Su respuesta a la pregunta