1. 问题描述
在springboot项目中集成ip2region包,一开始参考了《崛起于Springboot2.X之集成ip2region(31) 》文章,运行测试都没有问题,在此感谢作者的倾情奉献。
但项目打成可执行的jar包后再运行,却显示找不到ip2region.db,经调试后发现
String dbPath = IpUtil.class.getResource("/ip2region/ip2region.db").getPath();
返回的路径如下:
file:/D:/ws_java/esl/yunque-fs/target/demo2-0.0.3-SNAPSHOT.jar!/BOOT-INF/classes!/ip2region/ip2region.db
这个路径很显然无法被io读取,所以造成了无法找到资源文件的错误。
2. 解决办法
虽然绝对路径无法使用,但仍然可以获取到文件内容,代码如下:
IpUtil.class.getClassLoader().getResourceAsStream("classpath:ip2region/ip2regio