加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sprinboot打包jar后读取不到/resource/data/ip2region.xdb的文件.

(2022-10-31 19:31:42)
sprinboot打包jar后读取不到/resource/data/ip2region.xdb的文件.


解决1:文件复制到项目外,直接用路径访问.

解决2: 如果文件必须再项目里,打包要包含,可以用代码从jar包里复制到服务器上.
1:maven打包要添加你的文件
${project.artifactId}
src/main/resources
*.xml
*.txt
*.properties
*.yml
mapper/*.xml
static/**
data/ip2region.xdb
true
2:打包后,文件jar包里,不在你的目录里.可以从jar包了复制过去.
//项目打包成jar包所在的根路径
String rootPath = applicationHome.getSource().getParentFile().toString();
String configFilePath = rootPath + "/data/ip2region.xdb";
File configFile = new File(configFilePath);
if (!configFile.exists()) {
try {
//获取类路径下的指定文件流 (项目目录下的: /resource/data/ip2region.xdb)
InputStream in = this.getClass().getClassLoader().getResourceAsStream("data/ip2region.xdb");
FileUtils.copyInputStreamToFile(Objects.requireNonNull(in, "/data/ip2region.xdb文件找不到"), configFile);
} catch (IOException e) {
//throw new IllegalArgumentException("保存文件证书失败->" + e.getMessage());
log.info("保存文件数据文件ip2region失败({}): {}", ip, e);
}
}
log.info("数据文件ip2region.xdb地址:{}", configFilePath);

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有