首页 >Java >java教程 >如何通过 Java 的 Runtime.exec() 可靠地使用管道?

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

DDD
DDD原创
2024-12-15 22:25:15633浏览

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