Java geoip2 java.io.FileNotFoundException:

Java geoip2 java.io.FileNotFoundException:

我用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();
}

test.war/ test.war/WEB-INF/classes

你可以试试这个

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