-1

当我从终端执行以下命令时,它运行良好:

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

4

1 回答 1

6

通配符是一种 shell 功能,因此如果您使用 exec,它们将按字面意思理解。如果你有一个名为*它的文件,它将被删除,但我怀疑你想要一个 shell 来扩展*

尝试

"sh", "-c", "rm -f /home/folkman/Desktop/DimacsProba/*"
于 2013-07-14T22:32:44.617 回答