首頁 > Java > java教程 > 如何從 Java 程式中執行 Shell 命令?

如何從 Java 程式中執行 Shell 命令?

Linda Hamilton
發布: 2024-12-18 10:50:11
原創
614 人瀏覽過

How Can I Run Shell Commands from within a Java Program?

從 Java 執行 Shell 指令:詳細指南

在 Java 中,您可以使用 Runtime.exec() 方法執行系統指令。但是,了解如何執行命令可能具有挑戰性。

開啟命令提示字元

您提供的程式碼正確開啟命令提示字元:

Runtime rt = Runtime.getRuntime();
rt.exec(new String[]{"cmd.exe","/c","start"});
登入後複製

這將會開啟一個新的命令提示字元視窗。

正在執行命令

要在命令提示字元中執行命令,您可以在執行之前將命令附加到命令列。例如,要更改目錄並執行特定命令:

更改目錄

// Change directory and run "dir" command
ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && dir");
登入後複製

上面的命令列告訴cmd.exe 依序執行以下命令:

  1. 將目前目錄改為「C:Program FilesFlowella”
  2. 在目錄下執行「dir」指令

執行其他指令

可以透過修改指令來執行任何指令「 cd”之後的行。例如,要執行「ping」指令:

ProcessBuilder builder = new ProcessBuilder(
    "cmd.exe", "/c", "cd \"C:\Program Files\Flowella\" && ping www.google.com");
登入後複製

使用 ProcessBuilder

ProcessBuilder 類別提供了一種更通用的方法來執行指令。它允許您:

  • 重定向進程的標準錯誤和輸出流
  • 設定環境變數
  • 設定工作目錄

在在上面的範例中,我們將進程的標準錯誤重定向到其標準輸出,以簡化讀取

用法範例

以下程式碼在指定目錄中執行「dir」指令:

import java.io.*;

public class CmdCommand {
    public static void main(String[] args) throws Exception {
        String dir = "C:\Program Files\Flowella";
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"" + dir + "\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }
}
登入後複製

此程式碼更改目前目錄到“C:Program FilesFlowella」並執行「dir」指令,將輸出列印到控制台。

以上是如何從 Java 程式中執行 Shell 命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板