1
我正在寻找JAVA中可用的所有不同功能来执行进程/ os命令。Java - 如何执行进程
例如,我熟悉exec('command')。
在PHP我熟悉以下功能:
exec()
shell_exec()
system()
passthru()
escapeshellcmd()
backticks (``)
popen()
automatic()
能否请您命名等功能/技术?
我正在寻找JAVA中可用的所有不同功能来执行进程/ os命令。Java - 如何执行进程
例如,我熟悉exec('command')。
在PHP我熟悉以下功能:
exec()
shell_exec()
system()
passthru()
escapeshellcmd()
backticks (``)
popen()
automatic()
能否请您命名等功能/技术?
幸运的是,JDK有一个相当直接的方法:ProcessBuilder API。
Here是其实施的一个完整示例。如果你不想通读这篇文章,这是一个简单的例子:
package com.process;
import java.io.File;
import java.io.IOException;
import java.lang.ProcessBuilder.Redirect;
public class ProcessBuilder {
public static void main(String... args) throws IOException, InterruptedException {
ProcessBuilder builder = new ProcessBuilder("D:/test.bat", "firstArg", "secondArg");
processBuilder.directory(new File("D:/"));
File log = new File("D:/log.txt");
builder.redirectErrorStream(true);
builder.redirectOutput(Redirect.appendTo(log));
Process p = builder.start();
p.waitFor();
}
}
@hhafeez我不认为他指的是Java线程;他指的是本地系统进程。例如,在Linux上调用'grep'。 – Keith
线程在技术上是轻量级的过程 – hhafeez
@hhafeez我知道,但这是一个苹果对桔子的比较。 Java线程不会自由地让您访问本机OS调用。 OP要求Java的模拟对象在他的PHP示例中指定的系统调用。这在下面使用'Process'库来回答。 – Keith