Это зависит от операционной системы.Windows не позволит вам удалить файлы, которые используются, но Linux сделает это.
Одним из решений будет запуск второго процесса, который ожидает смерти вашей JVM, а затем удалит файл, даже если вы очиститеВсе ссылки на загрузчики классов, использующие его, не гарантируют, что они выпустят файл.Не существует способа принудительного сбора мусора (или даже завершения) объекта.
Другим решением было бы написать загрузчик классов, который загружает Jar-файл.Таким образом, когда вы хотите избавиться от него, вы можете быть уверены, что банка закрыта.Если единственным объектом, который открыл его, был ваш загрузчик классов, то вы можете быть уверены, что он бесплатный и должен быть удаляемым.