У меня есть ProcessBuilder
, который должен удалить File.txt
, а затем переименовать NewFile.txt
. Проблема в том, что оба файла удалены. Любая идея, почему и как исправить?ProcessBuilder delete and rename
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