ProcessBuilder与Runtime.exec()

Jav*_*eat 14 java runtime.exec processbuilder

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

Joa*_*uer 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();
}
Run Code Online (Sandbox Code Playgroud)