Простота использования - единственная реальная разница между этими двумя.
Обратите внимание, что простота использования может привести к безопасности, помогая избежать неправильного использования.
По крайней мере, в OpenJDK 6 Runtime.exec()
реализовано с использованием ProcessBuilder
:
public Process exec(String[] cmdarray, String[] envp, File dir)
throws IOException {
return new ProcessBuilder(cmdarray)
.environment(envp)
.directory(dir)
.start();
}