繁体   English   中英

如何通过runTime.exec()使用涉及“>”的linux命令

[英]How to use linux commands involving “>” through runTime.exec()

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

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

与runTime.exec();

在网上搜索时,我知道runTime.exec()不支持管道或重定向。 请让我知道如何使用我的Java代码执行此命令。 请给出确切答案。

管道和重定向是外壳提供的功能。 一种简单(又脏)的解决方案是在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中的输入和输出流管道

否则,如果您知道自己所处的平台支持bourne shell( sh ),则可以将其添加到命令中以在该shell中运行原始命令:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM