0
我面對的問題,而從Java錯誤通過調用Runtime.getRuntime()執行find命令。EXEC()
Process p2 = Runtime.getRuntime().exec("find /home/app/reports/ATM.CCC.* -mtime +1000");
執行下面的命令中,我需要找到與格式ATM.CCC.
其中年齡超過千天文件。 還需要刪除超過100天的文件。
我面對的問題,而從Java錯誤通過調用Runtime.getRuntime()執行find命令。EXEC()
Process p2 = Runtime.getRuntime().exec("find /home/app/reports/ATM.CCC.* -mtime +1000");
執行下面的命令中,我需要找到與格式ATM.CCC.
其中年齡超過千天文件。 還需要刪除超過100天的文件。
我假設你想要/home/app/reports/ATM.CCC.*
擴展到文件列表。
這將不起作用,因爲「globbing」是一個shell函數,而不是由系統調用執行的核心繫統函數...或Java exec(...)
方法。
你需要做的是在shell中運行命令;例如
.... exec(new String[]{
"sh", "-c",
"find /home/app/reports/ATM.CCC.* -mtime +1000"
});
請注意,你需要使用的exec
這需要一個字符串數組的過載。如果您嘗試使用過載,需要一個字符串,並將其分成爭論......像這樣...
.... exec("sh -c \"find /home/app/reports/ATM.CCC.* -mtime +1000\"");
的命令字符串將不能正確拆分。 (exec
拆分器不懂Unix/Linux shell式引用。)
好像不是java相關的。你的命令是否實際執行? –
這是什麼問題? – biziclop