ProcessBuilder vs Runtime.exec()

2022-09-03 17:55:06

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


答案 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();
}

答案 2

推荐