2011-05-04 109 views

回答

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(); 
} 
+0

除了'Runtime.exec'有重載將'command'作爲單個'String'並標記它的重載,但是在'ProcessBuilder'中,一個'String'被視爲可變參數'String [1]' - 參見http ://stackoverflow.com/questions/6856028/difference-between-processbuilder-and-runtime-exec – 2017-05-18 21:08:45