我已经检查了许多很好的答案,这里的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进程来使你的命令工作。 –