springboot项目部署打成jar包后运行提示找不到application.properties文件问题

本文讲述了在将SpringBoot项目打包为jar后,如何因资源文件未包含导致的运行错误。通过调整pom.xml中的<resources>标签,解决了配置文件缺失问题,确保部署后的应用正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

springboot项目部署打成jar包后运行提示找不到application.properties文件问题


问题描述

最近在做springboot项目部署到服务器上,打成jar包之后在本地用java - jar xxx.jar运行了一下发现报了这个错误。仔细一看报错提示是jar包中找不到相关文件。

在这里插入图片描述

原因分析:

后来经过一番询问和查找,发现是自己的resource文件夹下面的配置文件没有打上来
在这里插入图片描述


解决方案:

在pom文件中加上以下信息后就可以啦

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
SpringBoot是一款快速开发框架,它集成了Spring框架、Spring MVC、Spring Data、Spring Security等模块,极大地简化了Java Web应用的开发和部署。然而,当我们将SpringBoot项目打成jar后,可能会遇到无法获取/static下的静态资源文件问题。 出现这种问题的原因是jar文件不能像war一样直接被Tomcat等Web容器所加载。SpringBoot应用作为jar启动时,没有了Tomcat等容器,因此就无法访问静态资源文件了。 解决这种问题的方法有两种。 第一种方法是通过代码的方式让SpringBoot应用识别到static目录下的静态资源文件。我们可以在配置文件(application.properties or application.yml)中加入以下配置: spring.web.resources.static-locations=classpath:/static/ 这样就可以让SpringBoot应用在启动时扫描class path下的/static目录,使其中的静态资源文件得到识别和加载。 第二种方法是使用SpringBoot的嵌入式Web容器。SpringBoot内置了Tomcat、Jetty等Web容器,这些容器会在SpringBoot应用启动时自动启动,并且自动加载静态资源文件。我们只需要在代码中使用如下注解: @EnableWebMvc @Configuration public class MvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } } 上述代码片段中的@EnableWebMvc注解表示开启WebMvc配置,@Configuration表示该类是Spring的一个配置类,MvcConfig类继承自WebMvcConfigurerAdapter并重写了addResourceHandlers方法,这个方法将“/static/**”的请求映射到classpath:/static/目录下。这样,在嵌入式Web容器中启动SpringBoot应用时,静态资源文件就能被正确加载了。 总之,无法获取SpringBoot项目静态资源文件问题,主要是由于jar没有被Web容器所直接加载所致。采用上述两种方法,均可解决这种问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值