Java - 如何执行流程
Java - How to execute a process
我正在寻找 JAVA 中可用的所有不同函数来执行 process/os 命令。
比如我熟悉的exec('command').
在PHP中我熟悉以下函数:
exec()
shell_exec()
system()
passthru()
escapeshellcmd()
backticks (``)
popen()
automatic()
你能说出另一个 functions/techniques 吗?
幸运的是,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();
}
}
我正在寻找 JAVA 中可用的所有不同函数来执行 process/os 命令。
比如我熟悉的exec('command').
在PHP中我熟悉以下函数:
exec()
shell_exec()
system()
passthru()
escapeshellcmd()
backticks (``)
popen()
automatic()
你能说出另一个 functions/techniques 吗?
幸运的是,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();
}
}