java - 如何通过runTime.exec()使用涉及 ">"的linux命令

标签 java linux inputstream ubuntu-12.04

我是 Java 新手。我想使用命令

"ps -e > /home/root/workspace/MyProject/ProcessList.txt" 

与 runTime.exec();

通过网络搜索,我了解到 runTime.exec() 不支持管道或重定向。请让我知道如何使用我的 Java 代码执行此命令。请给出准确答案。

最佳答案

管道和重定向是 shell 提供的功能。简单(和肮脏)的解决方案是在 shell 中生成命令:"/bin/sh -c 'ps -e >/home/root/workspace/MyProject/ProcessList.txt'"

编辑:我忘记了默认的 StringTokenizer 不适用于带引号的字符串。以字符串数组的形式提供参数。

String[] args = {
    "/bin/sh",
    "-c",
    "ps -e > /home/root/workspace/MyProject/ProcessList.txt"
};
java.lang.Runtime.getRuntime(args);

关于java - 如何通过runTime.exec()使用涉及 ">"的linux命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13671256/

相关文章:

java - 重用floatActionButton android

java - 使用链表实现队列,出现与我的 Node 类相关的错误

c - 如何通知 netdev 队列可以再次接收数据包

python - 如何在 linux centOS 中使用 python 将原始套接字绑定(bind)到特定接口(interface)?

安卓:最佳实践? ,将多个文件从一个文件夹复制到另一个文件夹时,需要很多时间,

java - 使用空检查java从套接字读取http请求

java - 密码保护 XSSFWorkBook Apache POI

linux - 哪个 Linux 实体负责生成非法指令陷阱?

java - 如何关闭不是由InputStream定义但直接在方法内部使用的Inputstream?

Java 对辅助类字段的反射