【发布时间】:2020-08-14 00:22:16
【问题描述】:
我使用 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();
}
【问题讨论】:
-
无论是纯java代码还是你使用的任何框架