我使用geoip2根据ip确定国家/地区。在代码的开发和测试过程中,我没有遇到任何问题,但是当我运行已编译的归档文件时,我遇到了java.io.FileNotFoundException异常。我知道这是因为文件的路径是绝对的,并且在归档文件中它会发生变化。问:我需要如何更改我的代码,才能从归档中访问该文件?
public static String getCountryByIp(String ip) throws Exception {
File database = new File(URLDecoder.decode(GeoUtils.class.getResource("/GeoLite2-Country.mmdb").getFile(),"UTF-8"));
DatabaseReader dbReader = new DatabaseReader.Builder(database).build();
InetAddress ipAddress = InetAddress.getByName(ip);
CountryResponse response = dbReader.country(ipAddress);
return response.getCountry().getName();
}发布于 2020-04-30 03:19:47
你可以试试这个
InputStream is = this.getClass().getClassLoader().getResourceAsStream("GeoLite2-Country.mmdb");https://stackoverflow.com/questions/61509829
复制相似问题