Java ProcessBuilder与Runtime.exec()的比较
哪一个更好?我所说的更好是指哪一个具有更好的安全性等(而不是易用性)。易用性是这两者之间唯一的真正区别 请注意,易用性有助于避免误用,从而提高安全性 至少在OpenJDK 6上Java ProcessBuilder与Runtime.exec()的比较,java,runtime.exec,processbuilder,Java,Runtime.exec,Processbuilder,哪一个更好?我所说的更好是指哪一个具有更好的安全性等(而不是易用性)。易用性是这两者之间唯一的真正区别 请注意,易用性有助于避免误用,从而提高安全性 至少在OpenJDK 6上Runtime.exec()是使用ProcessBuilder实现的: public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException { return new ProcessBuilder(cmdarra
Runtime.exec()
是使用ProcessBuilder
实现的:
public Process exec(String[] cmdarray, String[] envp, File dir)
throws IOException {
return new ProcessBuilder(cmdarray)
.environment(envp)
.directory(dir)
.start();
}
“具有更好的安全性”是什么意思?除了
运行时.exec
具有重载,该重载将命令
作为单个字符串
并对其进行标记,但在ProcessBuilder
中,单个字符串
作为vararg字符串[1]处理
--请参阅