getRuntime.exec()无效,ubuntu 13.04

时间:2013-07-14 22:29:44

标签: java process runtime.exec

当我从终端执行以下命令时,以下命令工作正常:

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,但我真的不知道。请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:6)

Wild Cards是一个shell功能,所以如果你使用exec,它们将被逐字逐句。如果你有一个名为*的文件,它将被删除,但我怀疑你想要一个shell来展开*

尝试

"sh", "-c", "rm -f /home/folkman/Desktop/DimacsProba/*"