首頁 >Java >java教程 >如何透過 Java 的 Runtime.exec() 可靠地使用管道?

如何透過 Java 的 Runtime.exec() 可靠地使用管道?

DDD
DDD原創
2024-12-15 22:25:15639瀏覽

How Can I Reliably Use Piping with Java's Runtime.exec()?

使用Runtime.exec() 進行管道

在Java 中,使用Runtime.exec() 進行管道操作可能會具有挑戰性,因為由於交叉管道行為的平台不一致。不過,有多種方法可以解決這個問題。

腳本執行

一種方法是建立一個封裝所需管道操作的腳本並執行該腳本,而不是執行腳本。單獨的命令。例如:

#!/bin/sh
ls /etc | grep release

然後,使用exec 執行腳本:

String[] cmd = {"/bin/sh", "path/to/script.sh"};
Process p = Runtime.getRuntime().exec(cmd);

Shell-Based Pipe

另一個選項是利用直接使用shell的管道功能,如下所示:

String[] cmd = {
    "/bin/sh",
    "-c",
    "ls /etc | grep release"
};
Process p = Runtime.getRuntime().exec(cmd);

透過使用「-c」選項,shell在子shell中執行指定的命令字串,從而可以使用管道和其他shell功能。

以上是如何透過 Java 的 Runtime.exec() 可靠地使用管道?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn