2011-05-04 16 views

Respuesta

31

La facilidad de uso es la única diferencia real entre esos dos.

Tenga en cuenta que la facilidad de uso puede conducir a la seguridad al ayudar a evitar el uso incorrecto.

Al menos en OpenJDK 6 Runtime.exec() se implementa utilizando ProcessBuilder:

public Process exec(String[] cmdarray, String[] envp, File dir) 
    throws IOException { 
    return new ProcessBuilder(cmdarray) 
     .environment(envp) 
     .directory(dir) 
     .start(); 
} 
+0

Excepto que 'Runtime.exec' tiene sobrecargas que toman 'command' como una sola' String' y la tokenizan, pero en 'ProcessBuilder' una sola' String' se maneja como una vararg 'String [1]' - vea http : //stackoverflow.com/questions/6856028/difference-between-processbuilder-and-runtime-exec –

Cuestiones relacionadas