簡體   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