Diferença entre ProcessBuilder e Runtime.exec ()

Estou tentando executar um comando externo a partir do código java, mas há uma diferença que notei entreRuntime.getRuntime().exec(...) enew Process(...).start().

Quando usarRuntime:

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

o exitValue é 0 e o comando é finalizado o

No entanto, comProcessBuilder:

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

o valor de saída é 1001 e o comando termina no meio, emborawaitFor retorna.

O que devo fazer para corrigir o problema comProcessBuilder?

questionAnswers(4)

yourAnswerToTheQuestion