我有一个ProcessBuilder
应删除File.txt
,然后重命名NewFile.txt
。 问题是两个文件都被删除。任何想法为什么以及如何解决?ProcessBuilder删除和重命名
public class MyProcessBuilder {
public static void main(String[] args){
final ArrayList<String> command = new ArrayList<String>();
// CREATE FILES
File file = new File("File.txt");
File newFile = new File("NewFile.txt");
try{
if(!file.exists())
file.createNewFile();
if(!newFile.exists())
newFile.createNewFile();
} catch(Exception e){}
// force remove File.txt
command.add("rm");
command.add("-f");
command.add("File.txt");
// rename NewFile.txt to File.txt
command.add("mv");
command.add("NewFile.txt");
command.add("File.txt");
final ProcessBuilder builder = new ProcessBuilder(command);
try {
builder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
谢谢。不幸的是,这回答了我的问题。我真正想要做的是:运行Program.jar,删除Program.jar,将NewProgram.jar重命名为Program.jar,运行Program.jar。因为我正在运行Program.jar(File.txt),所以它不能被删除。每个命令可以用一个ProcessBuilder解决吗? – Grains