ProcessBuilder против Runtime.exec () - PullRequest
14 голосов
/ 04 мая 2011

Какой из них лучше? Под лучшим я подразумеваю, какой из них лучше защищен и т. Д. (Не прост в использовании).

1 Ответ

31 голосов
/ 04 мая 2011

Простота использования - единственная реальная разница между этими двумя.

Обратите внимание, что простота использования может привести к безопасности, помогая избежать неправильного использования.

По крайней мере, в 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();
}
...