0

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
4

2 に答える 2

1

これを使用してみてください:

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

プレーンな String コマンドの代わりに。

ただし注意してください。出力が重いため (/dev/ でテストしました)、waitFor メソッドによって I/O バッファーがバーストする可能性があります。

于 2013-04-17T00:16:37.913 に答える
0

バックスラッシュが多すぎる

find . -exec ls -al {} ';'
于 2013-04-16T23:59:32.270 に答える