Discuss / 手写Spring / jvm退出时没有将tmp-webapp文件夹下的文件删除干净导致第二次运行war包时执行Files.delete(baseDir)报DirectoryNotEmptyException异常

jvm退出时没有将tmp-webapp文件夹下的文件删除干净导致第二次运行war包时执行Files.delete(baseDir)报DirectoryNotEmptyException异常

Topic source

R8HLR6CC

#1 Created at ... [Delete] [Delete and Lock User]

JVM退出时自动删除tmp-webapp后,tmp-webapp/WEB-INF/lib 中的jar还没有被成功删除

请问廖老师这要怎么解决啊?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

Windows可能确实删不掉正在使用的文件,需要一些其他方式删除,唯一能自己删除自己的是生成一个bat文件

R8HLR6CC

#3 Created at ... [Delete] [Delete and Lock User]

将main函数里

if (Files.isDirectory(baseDir)) {
    Files.delete(baseDir);
}

改成

if (Files.isDirectory(baseDir)) {
    Files.walk(baseDir).sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);
}

war包可正常重复运行


  • 1

Reply