簡體   English   中英

執行命令

[英]Executing a command

我正在嘗試執行命令:

public static void main(String[] args) {        
    int buffer;
    StringBuilder res = new StringBuilder();
    Process proc;
    try {
        proc = Runtime.getRuntime().exec("cat /proc/stat | grep 'btime' | awk '{print $2}'");
        BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
        String line;
        while ((line=reader.readLine())!=null) {
            System.out.println(line);
        }
        proc.waitFor();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

但是結果卻不是我所期望的:

cat: '|': No such file or directory
cat: grep: No such file or directory
cat: "'btime'": No such file or directory
cat: '|': No such file or directory
cat: awk: No such file or directory
cat: ''\''{print': No such file or directory
cat: '$2}'\''': No such file or directory

我究竟做錯了什么? Ubuntu 18.04。

Runtime.exec無法運行這樣的任意shell / terminal命令。

您必須運行bash程序,然后將命令作為參數發送到bash。 Bash將為您完成這項工作。

https://stackoverflow.com/a/15356451/1364747

這是特定於操作系統的。 在不同的操作系統上,它可能是不同的命令/終端。 另外,您可能需要知道該程序的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM