Eclipse 防止Spring引导在静态内容上保持文件锁定

Eclipse 防止Spring引导在静态内容上保持文件锁定,eclipse,spring-boot,Eclipse,Spring Boot,从弹簧靴: “默认情况下,Spring Boot将提供来自名为 /static(或/public或/resources或/META-INF/resources)中的 类路径或从ServelContext的根目录[sic]“ 为了利用这种行为,我在src/main/resources中添加了一个static文件夹。果然,SpringBoot提供了这些静态内容。在Eclipse中它看起来像这样: 然而,Spring Boot必须以某种方式在静态内容上保留一个文件锁,因为每当我更改静态内容时,都会出

从弹簧靴:

“默认情况下,Spring Boot将提供来自名为
/static
(或
/public
/resources
/META-INF/resources)
中的 类路径或从ServelContext的根目录[sic]“

为了利用这种行为,我在
src/main/resources
中添加了一个
static
文件夹。果然,SpringBoot提供了这些静态内容。在Eclipse中它看起来像这样:

然而,Spring Boot必须以某种方式在静态内容上保留一个文件锁,因为每当我更改静态内容时,都会出现如下Eclipse项目错误:


我必须停止应用程序,以获得该项目的建设,这是真的很烦人!有人对此有解决方案吗?

这看起来像是spring webmvc中的org.springframework.web.servlet.resource.ResourceHttpRequestHandler中的一个bug,已通过最新提示修复

这是使用从
ClassPathResource
中提取的
InputStream
而未关闭的有问题的代码块:

protected void writeContent(HttpServletResponse response, Resource resource) throws IOException {
    StreamUtils.copy(resource.getInputStream(), response.getOutputStream());
}

请参阅错误报告。

我从未遇到过这个问题。你在哪个站台?此外,该路径中的“bin”目录也是可疑的,因为Eclipse将其用于“本机”Java项目,而Maven或Gradle则不使用它。您使用的是Maven还是Gradle,如果不是,为什么不呢?不幸的是,这是一个Windows平台。bin目录很有趣,Eclipse项目是一个Gradle项目。当然,我只是允许Eclipse构建源代码并从那里运行它,而不是从Gradle。如果从命令行(“mvn spring boot:run”)运行,它能工作吗?它能工作,但是我不能用通常的方式调试应用程序。