spring boot打包后在服务器上无法读取resources下文件

malie0 发布于 09/26 16:55
阅读 820
收藏 0

华为云11月刊推送:DIY微信问答机器人,高性能计算代码的20个技巧!>>>

打包后所有工程都是jar包,服务器上没法读到resources下的文件,网上找了很多文章说的解决办法都不行,各种读取方法都试过了就是读不到文件,以前用spring mvc的时候从来没有这种情况,对spring boot的打包运行机制不是很了解,不知道有没有解决办法?

以下是问题补充:

@malie0:用了一个三方的jar包叫mapstruct,这个工具的方法可以直接传入jar包里的文件路径就能读取出来,没去研究源码,应该还是写法跟我的不一样 (10/09 20:46)
加载中
0
爱生活-爱美女
爱生活-爱美女

ClassPathResource resource = new ClassPathResource("xxxxxxxx");
resource.getInputStream();

m
malie0
没用,早试过了
0
小伯恩
小伯恩

兄弟,把你的错误信息发出来

m
malie0
就是读不到文件,我把文件流读出来长度是0
0
大伟欧巴
大伟欧巴

你把自己打包的jar,用rar解压下 看看resource里面的文件有没有打进去

大伟欧巴
大伟欧巴
回复 @malie0 : 你把target文件一整个直接删除,然后重新 install看下
m
malie0
有的,我看过了,在classes下是有文件的,我怀疑是因为打成了jar所以拿不到,以前打成war包都没问题
0
gslw
gslw

你应该是没有将资源打进去,看下你的打包配置文件有没有配错吧

0
NSLogName
NSLogName
InputStream in = this.getClass().getResourceAsStream("文件相对路径");
m
malie0
这种也试过了
0
f
freezingsky

项目结构,来个截图。

加载资源文件代码,给个截图。

0
九块腹肌进先生

这个问题我遇到过 证书在resource/comfig下  打成jar读取证书出错 但是我换成 ClassPathResource resource = new ClassPathResource("/config/xxxx.cer"); InputStream stream =resource.getInputStream() 读取是没得问题的

0
科罗拉多
科罗拉多

是不是构建profie的时候把资源文件忽略了,导致没有打进jar里

0
君千殇520
君千殇520

pom  maven构建打包,把资源文件包含进去

0
nimagugu
nimagugu

 docker内,我是这么取的文件,多项目结构,非spring boot 项目

m
malie0
非spring boot项目是没问题的,我们以前打成war包一直都是用这种方式取的,现在的问题就是在spring boot下打成了jar包产生的
返回顶部
顶部