springboot 打包jar 运行找资源文件】的更多相关文章

使用如下方式读取文件:ClassPathResource cpr = new ClassPathResource("static/ok.png");byte[] bdata = FileCopyUtils.copyToByteArray(cpr.getInputStream());…
SpringBoot读取war包jar包Resource资源文件解决办法 场景描述 在开发过程中我们经常会碰到要在代码中获取资源文件的情况,而我在最近在SpringBoot项目中时碰到一个问题,就是在本地运行时,获取本地的xml资源文件是能够获取到的,但是项目打成war包jar包启动运行时,就会发生问题,报找不到资源文件的错误.然后经过寻找排查确定了是下面代码通过ClassLoader获取路径的时候出错了.   常用方式: /** * @author mazhq * @Title: TestMa…
在项目中遇到了一个问题,在IDE中读取配置文件的程序,打成架包以后,放到服务器上跑,报找不到资源文件的错误. 其中,资源文件的路径如下: 获取配置文件路径和读取的方法如下: private static String getPath(){ String path = ModuleFactory.class.getResource("/pipesconfig/").getFile(); return path;} private static String readAllText(Str…
springboot以jar运行时参数传递 spring boot项目我们都习惯以内嵌tomcat方式.直接打包成jar,运行时使用: java -jar XXX.jar  --spring.profiles.active=alpha 以此激活xxx-alpha.properties文件. 但是--spring.profiles.active=alpha参数到底是怎么传递进spring boot里面启动的呢? 它是以下面的方式传递参数进去的. @SpringBootApplication pub…
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <b…
一.需求 今天在搭建Springboot框架的时候,又遇到一个需求:在多模块系统中,有些模块想自己管理BeanValidation的资源文件(默认是启动项目claspath下的 ValidationMessages.properties).刚开始还天真地认为springboot会不会帮我们做了,结果并没有,于是就是撸源码了. 以下是我的实现和实现原理 二.实现 @Configuration public class MyWebMvcConfigurer implements WebMvcConf…
最近的工作中需要将java程序打一个jar包,然后在Linux中供调用.程序中需要读取一个配置文件.遇到了三个问题.第一个是依赖的第三方Jar包打成Jar包后找不到:第二个问题是资源文件所在的文件夹打jar包时没有一起打入Jar包中:第三个问题是找不到资源文件,无法读取到指定的文件.下面给出我对三个问题的解决方法: 第三方jar包找不到 针对这个问题,我没有按照网上一般的方法自己写MANIFIST.FM文件的方式.因为我只依赖了一个数据库驱动的jar包,我偷了个懒,直接选中工程右键单击,选择ex…
背景 写的一个spring boot项目打成jar包部署运行下,打成jar包,提示找不到资源文件,如下图: 直接通过idea是可以运行的,但打成jar包后提示找不到资源文件,简单查阅后了解到是因为jar包在读取文件的方式不一致导致的 问题分析 先定位到哪行代码出错,如下: URI configurationFileURI = this.getClass().getClassLoader().getResource(CONFIGURATION_FILE).toURI(); 这里报错,提示getRe…
安装 系统变量→新建 JAVA_HOME 变量 . 变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0) 系统变量→寻找 Path 变量→编辑 在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (注意原来Path的变量值末尾有没有;号,如果没有,先输入:号再输入上面的代码) 系统变量→新建 CLASSPATH 变量 变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点) 系…
前言:在打包android源码的时,有的时候源码中包含了资源文件,但是jar包中不包含,所以会异常,解决的方案就是不用系统的提供的id名,而是直接 获取id,如反射. 1.系统提供的方法: /** * 参数1:资源的名字:参数2:资源所在的类:参数三:程序的包名. */ int id = getResources().getIdentifier("home_activity", "layout", getPackageName()); 2.自定义的方法: packa…