当我从终端执行以下命令时,以下命令工作正常:
rm -f /home/folkman/Desktop/DimacsProba/*
但是,我想用Java执行它。我正在使用Netbeans,当我使用旧版本的Ubuntu时,它起作用了:
Runtime.getRuntime().exec("rm -f /home/folkman/Desktop/DimacsProba/*");
现在,使用Ubuntu 13.04。以下任何内容都无效:
//1
Runtime.getRuntime().exec("rm -f /home/folkman/Desktop/DimacsProba/*");
//2
Runtime.getRuntime().exec(new String[]{"rm" , "-f", "/home/folkman/Desktop/DimacsProba/*"});
// 3
ProcessBuilder pb= new ProcessBuilder("rm","/home/folkman/Desktop/DimacsProba/*");
Process p=pb.start();
也许不是因为Ubuntu,但我真的不知道。请帮忙! 谢谢!
答案 0 :(得分:6)
Wild Cards是一个shell功能,所以如果你使用exec,它们将被逐字逐句。如果你有一个名为*
的文件,它将被删除,但我怀疑你想要一个shell来展开*
尝试
"sh", "-c", "rm -f /home/folkman/Desktop/DimacsProba/*"