java - 我该如何处理/tmp/jar_cache#######.tmp?

标签 java spring-boot jar embedded-tomcat-8

我正在使用 springboot 2.1.4 和 EmbeddedTomcat。当我运行服务器时,会创建/tmp/jar_cache###.tmp 。我该如何处理 jar_cache###.tmp?

我使用的是 CENTOS 7 和 java 版本“1.8.0_162”。

  1. 如果我将 tmpdir 更改为其他目录,而不是/tmp,那么我如何处理默认创建的大量 jar_cache###?

  2. 使用/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状态)累积:

根据问题跟踪器链接,该问题已在 SpringBoot 2.0.0 中修复。

现在我从您的问题中看到您正在使用 2.1.4,因此可能不是上面的具体问题导致您的问题。但是,第一个链接中可能会提供一些线索,可以帮助您找出的问题是由什么引起的。

回答您的问题:

  1. 是的,它们是默认创建的,但应用程序重新启动时应清除它们。
  2. 我预计更改 TMPDIR 将影响文件的创建位置。尝试一下看看!
  3. 如果应用程序仍打开文件,则从目录中删除文件不会释放任何文件空间。

也可以通过调用System.gc()来让文件消失。是的,出于性能原因,调用 System.gc() 通常不是一个好主意。但如果缓存文件确实是一个问题,这可能是一种解决方法。

关于java - 我该如何处理/tmp/jar_cache#######.tmp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55841072/

相关文章:

java - 设置某个配置文件时不加载 Spring bean

spring-boot - 如何在 Spring Boot 应用程序中 Autowiring 默认的 XmlMapper

java - Hibernate无法执行 native 查询SqlExceptionHelper : Invalid value "7" for parameter "parameterIndex"

java - 如何在应用程序上下文之前评估 spring ApplicationArguments?

java - Java中如何从jar中读取文件?

java - 比较两个对象的不同属性集

java - Java如何确定操作系统名称?

java - 提交表单时出现 HtmlUnit StackOverflowError

java - Intellij 与项目构建一起创建工件 (JAR)

audio - 从CMD运行时会播放声音,但不能像Jar一样运行