ProcessBuilder vs Runtime.exec()

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

Ответы

Ответ 1

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

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

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