DeleteOnExit jvm shutdown - PullRequest
       10

DeleteOnExit jvm shutdown

2 голосов
/ 28 июня 2011

В настоящее время у меня есть веб-приложение tomcat, которое требует удаления файлов во время завершения работы JVM.Я создал пользовательский ContextLoaderListener для обработки события contextDestroyed.Внутри я вызываю deleteOnExit для соответствующих файлов.Однако, начиная с jdk 1.6.0_14, я не могу удалить OnExit.Поиск в Google указывает на то, что произошли изменения, которые несколько ожидаются, но я не видел обходного пути для этого.У кого-нибудь есть идеи?

Ниже код НЕ работает.

for(File f : myFileList)
try{
    f.deleteOnExit()
} finally {
    f.delete()
}

1 Ответ

5 голосов
/ 28 июня 2011

Не думаю, что вы будете довольны результатами очистки файлов в рамках процесса упорядоченного завершения работы. Например, если ваш процесс дает сбой или останавливается с помощью команды «kill -9», ваш код очистки не запустится.

Более надежный подход заключается в настройке среды при запуске / инициализации. Если вы разделили файлы для этого приложения в определенном каталоге, то это легко: просто очистите каталог в вопросе.

Точно, к которому относится вызов «пустой каталог», зависит от вашего приложения. Например, если вы написали сервлет, то используйте метод init . Или, если вы используете Spring, то они предоставляют различные хуки инициализации, такие как init-method .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...