java - ProcessBuilder 与 Runtime.exec()

标签 java runtime.exec processbuilder

哪个更好?我所说的更好是指哪个具有更好的安全性等(不是易用性)。

最佳答案

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

请注意,易用性有助于避免误用,从而提高安全性。

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

关于java - ProcessBuilder 与 Runtime.exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886829/

相关文章:

java - 我可以在 Maven 中部署配置文件和生成的 jar 吗

java - 在不处理显示器(父级)的情况下处理外壳

java - 使用源代码和 javadoc 构建 jar

java - 运行可执行 jar 时出现 ClassNotFoundException

java - 在 GWT Web 应用程序中调用外部应用程序(即 Windows 计算器)

java - 如何使用 ProcessBuilder 启动批处理文件而不是作为子进程?

java - 在Java中执行windows命令

java - 使用 Java 在远程计算机上运行命令行

Java:showInputDialog 和 ProcessBuilder

java - 32 位 JVM、ProcessBuilder.start() 和 ENOMEM