我有一個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