Linux查找命令从java无法正常工作

时间:2013-04-16 20:07:21

标签: java linux process

任何人都可以帮助我在linux中使用此代码

    public static void main(String[] args) throws Exception,{   
    String s ="find . -exec ls -al {} \\;";
    Process exec = Runtime
            .getRuntime()
            .exec(s);
    exec.waitFor();
System.out.println(s);
    if (exec.getErrorStream().available() != 0) {
        BufferedInputStream bf = new BufferedInputStream(
                exec.getErrorStream());
        DataInputStream din = new DataInputStream(bf);
        System.out.println(din.readLine());
    }

    System.out.println(exec.exitValue());
}

我得到以下输出。

find . -exec ls -al {} \;
find: missing argument to `-exec'
1

2 个答案:

答案 0 :(得分:1)

尝试使用:

String[] params = {"find", ".", "-exec", "ls", "-al", "{}", ";"};

而不是你的普通String命令。

小心但是:输出很重(我用/ dev /。测试过),而waitFor方法可能会导致你的I / O缓冲区崩溃。

答案 1 :(得分:0)

反斜杠太多

find . -exec ls -al {} ';'