美文网首页
sprinboot打包jar后读取不到/resource/dat

sprinboot打包jar后读取不到/resource/dat

作者: 万事俱备就差一个程序员了 | 来源:发表于2022-10-31 19:32 被阅读0次

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

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

解决2: 如果文件必须再项目里,打包要包含,可以用代码从jar包里复制到服务器上.

1:maven打包要添加你的文件

<build>

<finalName>${project.artifactId}</finalName>

<resources>

<resource>

<directory>src/main/resources</directory>

<includes>

<include>*.xml</include>

<include>*.txt</include>

<include>*.properties</include>

<include>*.yml</include>

<include>mapper/*.xml</include>

<include>static/**</include>

<include>data/ip2region.xdb</include>

</includes>

<filtering>true</filtering>

</resource>

</resources>

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);

相关文章

网友评论

      本文标题:sprinboot打包jar后读取不到/resource/dat

      本文链接:https://www.haomeiwen.com/subject/wqyltdtx.html