我正在使用 springboot 2.1.4 和 EmbeddedTomcat。当我运行服务器时,会创建/tmp/jar_cache###.tmp 。我该如何处理 jar_cache###.tmp?
我使用的是 CENTOS 7 和 java 版本“1.8.0_162”。
如果我将 tmpdir 更改为其他目录,而不是/tmp,那么我如何处理默认创建的大量 jar_cache###?
使用/tmp 目录,如果清除我的应用程序中使用的 jar_cache 会怎样?
java 46030 www DEL REG 253,2 2830 /tmp/jar_cache7122103988160656171.tmp
java 46030 www DEL REG 253,2 2842 /tmp/jar_cache8134973409906757503.tmp
java 46030 www 25r REG 253,2 414240 2830 /tmp/jar_cache7122103988160656171.tmp (deleted)
java 46030 www 27r REG 253,2 800016 2842 /tmp/jar_cache8134973409906757503.tmp (deleted)
最佳答案
SpringBoot的某些版本中显然存在一个错误,导致jar_cache
文件(处于DEL状态)累积:
- https://github.com/spring-projects/spring-boot/issues/9866 #9240 的重复
- https://github.com/spring-projects/spring-boot/issues/9240已解决
根据问题跟踪器链接,该问题已在 SpringBoot 2.0.0 中修复。
现在我从您的问题中看到您正在使用 2.1.4,因此可能不是上面的具体问题导致您的问题。但是,第一个链接中可能会提供一些线索,可以帮助您找出您的问题是由什么引起的。
回答您的问题:
- 是的,它们是默认创建的,但应用程序重新启动时应清除它们。
- 我预计更改
TMPDIR
将影响文件的创建位置。尝试一下看看! - 如果应用程序仍打开文件,则从目录中删除文件不会释放任何文件空间。
也可以通过调用System.gc()
来让文件消失。是的,出于性能原因,调用 System.gc() 通常不是一个好主意。但如果缓存文件确实是一个问题,这可能是一种解决方法。
关于java - 我该如何处理/tmp/jar_cache#######.tmp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55841072/