Java 提供以下方法執(zhí)行 cmd 命令:runtime.exec() 創(chuàng)建進(jìn)程并執(zhí)行命令。processbuilder 靈活創(chuàng)建進(jìn)程并配置參數(shù)。流處理(inputstream、geterrorstream)獲取輸出和錯(cuò)誤信息。
Java 執(zhí)行 CMD 命令
Java 提供了以下方法來(lái)執(zhí)行 CMD 命令:
Runtime.exec()
Runtime.exec() 方法創(chuàng)建新進(jìn)程并執(zhí)行指定的命令。它返回一個(gè) Process 對(duì)象,其中包含有關(guān)該進(jìn)程的信息以及用于與該進(jìn)程交互的方法。
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
用法示例:
Process process = Runtime.getRuntime().exec("dir");
登錄后復(fù)制
ProcessBuilder
ProcessBuilder 類提供了一種更靈活的方法來(lái)創(chuàng)建進(jìn)程和執(zhí)行命令。它允許您指定命令、其參數(shù)以及其他配置參數(shù)(例如工作目錄和環(huán)境變量)。
用法示例:
ProcessBuilder processBuilder = new ProcessBuilder("dir", "/w"); Process process = processBuilder.start();
登錄后復(fù)制
流處理
執(zhí)行命令后,您可以使用以下流來(lái)獲取進(jìn)程的輸出和錯(cuò)誤信息:
- Process.getInputStream() – 標(biāo)準(zhǔn)輸出
- Process.getErrorStream() – 標(biāo)準(zhǔn)錯(cuò)誤輸出
用法示例:
InputStream stdout = process.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(stdout)); while ((line = reader.readLine()) != null) { System.out.println(line); }
登錄后復(fù)制
示例
以下是如何使用 Runtime.exec() 方法在 Java 中執(zhí)行 “dir” 命令:
import java.io.IOException; public class ExecuteCmd { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec("dir"); InputStream stdout = process.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(stdout)); while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
登錄后復(fù)制