这不起作用,
Runtime.getRuntime().exec("stat /*");
也不是;
Runtime.getRuntime().exec(new String[] {"stat", "/*"})
周围有什么办法吗?
谢谢,
答案 0 :(得分:8)
星号由shell扩展(这称为 globbing )。所以你实际上想要执行/bin/sh
可执行文件(最有可能的是 - 如果需要,在这里替换另一个shell),并从中调用stat /*
。例如执行:
/bin/sh -c "stat /*"
来自Java进程的。 -c
指定/ bin / sh执行-c
之后的字符串中的任何内容。
或者,您可以通过在Java中查找根目录中的所有文件来自行执行/*
扩展,然后将这些文件作为参数传递给stat
。
答案 1 :(得分:1)
您可以将任务委托给shell,就像Brian Agnew所说,或者使用Java列出/(通过Apache IO中的所有文件和目录),并将/*
替换为正确的清单。
答案 2 :(得分:0)
这些答案没有用,所以我创建了一个我写的shell文件;
stat $1*
所以每当我需要添加星号时,我都会在没有它的情况下调用此文件,
Runtime.getRuntime().exec("/my_shell_file /miki/");
它为我添加了星号,并在运行时向我提供了我需要的输出:
stat /miki/*
干杯,