当我从终端执行它时,以下命令工作正常:
rm -f /home/folkman/Desktop/DimacsProba/*
Run Code Online (Sandbox Code Playgroud)
但是,我想用Java执行它.我正在使用Netbeans,当我使用旧版本的Ubuntu时,它有效:
Runtime.getRuntime().exec("rm -f /home/folkman/Desktop/DimacsProba/*");
Run Code Online (Sandbox Code Playgroud)
现在,使用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();
Run Code Online (Sandbox Code Playgroud)
也许这不是因为Ubuntu,但我真的不知道.请帮忙!谢谢!
通配符是一个shell功能,所以如果你使用exec,它们将被逐字逐句.如果你有一个名为的文件*将被删除,但我怀疑你想在这里扩展一个shell*
尝试
"sh", "-c", "rm -f /home/folkman/Desktop/DimacsProba/*"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |