我是 Java 新手。我想使用命令
"ps -e > /home/root/workspace/MyProject/ProcessList.txt"
与 runTime.exec();
在网上搜索时,我知道 runTime.exec() 不支持管道或重定向。请让我知道如何使用我的 Java 代码执行此命令。请给出准确答案。
我是 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 中的输入和输出流管道
否则,如果您知道自己在支持 bourne shell ( sh
) 的平台上,则可以将其添加到命令中以在该 shell 中运行原始命令:
"sh -c 'ps -e > /home/root/workspace/MyProject/ProcessList.txt'"