ProcessBuilder与Runtime.exec()

时间:2011-05-04 16:41:25

标签: java runtime.exec processbuilder

哪一个更好?更好的意思是哪一个具有更好的安全性等(不易使用)。

1 个答案:

答案 0 :(得分:31)

易用性是这两者之间唯一真正的区别。

请注意,易用性可以通过帮助避免误用来提高安全性。

至少在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();
}