Я пытаюсь сделать пользовательский деинсталлятор с помощью Java, который я могу превратить в консольное приложение с помощью Launch4J. То, что я пытаюсь достичь, это когда программа удаления завершится
, он должен открыть командную строку, которая удалит его, а затем удалить папку установки. Тем не менее, я получаю только эту ошибку: The process cannot access the file because it is being used by another
process
, но я вижу, что деинсталлятор уже удален, а каталог установки - нет. Может быть, деинсталлятор все еще открыт в памяти, или что я могу сделать, чтобы решить эту проблему?
public static void main(String[] args) {
String command;
command = "\"";
command += "echo Self Destruction Commenced.";
command += "& del /f /q \"" + System.getProperty("user.dir") + "\\uninstaller.exe\"";
command += "& rmdir /q /s \"" + System.getProperty("user.dir") + "\"";
command += "& echo. & echo MyProgram successfully uninstalled...";
command += "& set /p exitkey= \"Press [ENTER] key to finish...\" ";
command += "\"";
selfDestructProgram("start cmd.exe /c " + command);
}
private static void selfDestructProgram(String command) {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd.exe", "/c", command);
try {
Process process = processBuilder.start();
process.waitFor();
} catch (Exception var3) {
var3.printStackTrace();
}
}