Как перезаписать запущенный файл jar

Мне нужно переписать файл jar, когда обновление идет. Чтобы перемотать его, я делаю следующее:

ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe",
            "/c",
            "timeout 10",
            "&&",
            "move",
            "/Y",
            file.toAbsolutePath().toString(),
            System.getProperty("user.dir")
);

Запустите командную строку, спите 10 секунд и переместите файл dowload. Когда командная строка находится в спящем режиме, я закрываю программу. Но когда я использую «& & «это не работает, но когда я использую» & » это работает, но не спит.

1 ответ

  1. Как насчет попробовать что-то вроде этого:

    File fileDestination = new File(System.getProperty("user.dir") + "\" + file.getName());
    file.renameTo(fileDestination);
    

    Легче, если вы избегаете использования зависимых от ОС команд.

    Sfc