使用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中文網其他相關文章!