美文网首页
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