繁体   English   中英

在Runtime.exec()的参数中苦苦挣扎

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM