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