Process в Java не закрывает файл после компиляции

Проблема в следующем: я использую класс Process, полученных их Runtime.getRuntime() выполняю команду javac -cp ...;... ... ... для компиляции двух файлов с зависимостью от библиотек (ниже представлен код) и так как они мне нужны после комплияции небольшое количество времени, то желательно все эти скомпилированные файлы удалять, но появилась проблема в том, что Process блокирует скомпилированные файлы и не дает ничего с ними сделать, пока я не остановлю приложение.

Перепробовал всё, что касается закрытия чего-либо — не помогает. Всё равно при попытки с ним что-то сделать получаю java.nio.file.FileSystemException: src\main\resources\classes\12bad837-9d23-43ba-ac43-c80eda1dca1b\Upper.class: Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. System.gc() кстати говоря иногда помогал, но не всегда. Во всяком случае использовать его постоянно не хочу.

Ниже код, который это делает.

Process process = Runtime.getRuntime().exec(
        "javac -cp " + modulesDirectory + "junit.jar;" + modulesDirectory + "hamcrest.jar "
        + className + " " + testClassName
);

Ответы (2 шт):

Автор решения: Nordfox

попробуйте.

process.waitFor(10, TimeUnit.SECONDS);
process.waitFor() - do the current thread to wait until the process dont terminated
process.destroy(); // - kill the process
process.destroyForcibly()-forcibly kill the process
→ Ссылка
Автор решения: Nordfox

такой вариант пробовали??

process.destroy();

File file = new File(C:\\...)
file.delete();
→ Ссылка