[英]Struggling with parameters to Runtime.exec()
我已经在这里检查了exec()陷阱的许多好答案,甚至阅读了这篇文章http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won- t.html,但没有任何帮助。 我觉得我在这里反复无常。
我有两个需要通过.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 {}", "\\;"} );
任何帮助,将不胜感激。 谢谢。
在命令行中运行脚本,如果它可以正常工作,则只需复制该字符串并将其传递给getRuntime.exec(string)。此外,您还应指定执行该脚本的程序,我猜测在这种情况下应为cmd.exe
这达到了目的:
rt.exec(new String[]{"/bin/sh", "-c", "find "+path+"* -mtime +1 -exec gzip -q {} \\;"});
需要解释器/bin/sh
,其余命令可以作为.exec()
单个参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.