obj.class.getResource(“/ip2region.db”).getPath()
在本地运行可以找到文件
但是打成jar包之后就找不到文件
原因:
返回的是一个Jar协议地址:jar:file:/xxx/xx.jar!/xxxx
解决方法:
- 可以换成一个项目外的一个绝对地址;
- 通过流的方式,虽然无法识别classpath地址,但可以以流的方式得到
InputStream resourceAsStream = IPUtil.class.getResourceAsStream("/ip2region.db");
- 获取jar包所在目录
ApplicationHome home = new ApplicationHome(PathUtil.class);
File jarFile = home.getSource();
return jarFile.getParentFile().toString()