Процесс, созданный ProcessBuilder, не будет прерван - PullRequest
0 голосов
/ 05 февраля 2020

Я запускаю процесс Java в своем коде Java. Я закодировал функцию, чтобы закрыть этот процесс. Но процесс не завершается.

Вот мой код для создания процесса:

            Process process = null;

            final ProcessBuilder builder = new ProcessBuilder("java", "-jar", "-Xmx512M", "server.jar");
            builder.directory(new File("temp/"+serverName+"/"));

            try {
                process = builder.start();
            } catch (IOException e) {
                e.printStackTrace();
            }

Launcher.serverProcess.put(serverName, process);

из другого класса. Я бы хотел остановить сервер:

Process temp = Launcher.serverProcess.get(serverName);
            while(temp.isAlive()) {
                temp.destroy();
                temp.destroyForcibly();
            }
            Launcher.serverProcess.remove(serverName);

После ввода команды для остановки процесса я хочу удалить каталог. Всякий раз, когда я пытаюсь это сделать, мне только говорят, что папка используется, и я не могу удалить ее. С помощью taskkill / F / IM java.exe я прекращаю процесс и могу затем удалить папку

...