從我的實驗,find
將返回1
當它未能找到任何結果(find: /XXX/XXX/Documents/test1*: No such file or directory
)
首先,你應該使用ProcessBuilder
,這解決了問題,與包含空格的參數,使用戶能夠重定向輸入/錯誤流以及指定命令的起始位置(如果需要)。
所以,玩了,這樣的事情,似乎爲我(MacOSX的)工作...
ProcessBuilder pb = new ProcessBuilder(
new String[]{
"find",
"/XXX/XXX/Documents/test1",
"-mtime", "+10",
"-type", "f",
"-delete"
}
);
pb.redirectErrorStream(true);
try {
Process p = pb.start();
InputStream is = p.getInputStream();
int in = -1;
while ((in = is.read()) != -1) {
System.out.print((char)in);
}
int exitWith = p.exitValue();
System.out.println("\nExited with " + exitWith);
} catch (IOException exp) {
exp.printStackTrace();
}
嘗試使用完整的路徑'find' – Todd
您是否嘗試過閱讀'Process' 'InputStream'或'ErrorStream'?你也應該使用'ProcessBuilder' – MadProgrammer