Java geoip2 java.io.FileNotFoundException:



我使用geop2通过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();
}

测试.war/test.war/WEB-INF/类别

你可以试试这个

InputStream is = this.getClass().getClassLoader().getResourceAsStream("GeoLite2-Country.mmdb");

最新更新