我已經檢查了許多很好的答案,這裏的EXEC()pittfalls,甚至閱讀這篇文章http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html但沒有發現任何幫助。我覺得我在這裏沒有得到任何地方在試驗和錯誤。與參數掙扎的Runtime.exec()
我有這兩個(測試,在命令行上工作)命令,我需要通過.exec()
運行:
find <PATH>* -mtime +180 -exec rm {} \;
find <PATH>* -mtime +1 -gzip -q rm {} \;
但不管我怎麼傳遞參數我似乎總是得到一個不同的錯誤,沒有按無法告訴我們缺少什麼。例如:在-exec
中,我是否需要將{}
與參數分開?我是否需要在.exec()
的呼叫中關閉\;
?
我最後一次嘗試看起來像:
rt.exec(new String[]{"find", path+"*", "-mtime", "+180", "-exec rm {}", "\\;"});
rt.exec(new String[]{"find", path+"*", "-mtime", "+1", "-exec gzip -q {}", "\\;"});
任何幫助,將不勝感激。謝謝。
使用[的ProcessBuilder(http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html),它會讓你的生活變得更輕鬆。另外,你的例子正在使用globbing。你需要一個shell進程來使你的命令工作。 –