首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译maxmind geoip LookupService类时出现Java问题

编译maxmind geoip LookupService类时出现Java问题
EN

Stack Overflow用户
提问于 2013-09-03 18:03:15
回答 3查看 2.4K关注 0票数 0

我正在努力编译maxmind.geoip.LookupService.java,不知道有没有人能帮我

我下载了geoip-api-1.2.10.jar,将其包含在WEB-INF\lib中,并在类路径中引用了它,但它就是无法编译。

我已经成功编译了以下代码,所以我有点不知所措:

代码语言:javascript
复制
com.maxmind.geoip.Country
com.maxmind.geoip.DatabaseInfo
com.maxmind.geoip.Location
com.maxmind.geoip.Region
com.maxmind.geoip.timeZone

似乎找不到用于com.maxmind.geoip的全套编译的java类,如有任何帮助,将不胜感激:-)

EN

回答 3

Stack Overflow用户

发布于 2013-09-03 23:35:38

我通过从http://dev.maxmind.com/geoip/legacy/downloadable/下载最新的java文件来解决这个问题,解压文件夹,然后打开命令提示符,键入以下内容:

代码语言:javascript
复制
cd source/com/maxmind/geoip/
javac *.java

我使用的是jdk1.6.0_34和所有没有错误地编译的类。

我将com.maxmind.geoip文件夹复制到\WEB-INF\classes并下载了geoip-api-1.2.10.jar,并将其放置在WEB-INF\lib文件夹中。

最后,我从http://dev.maxmind.com/geoip/legacy/geolite/下载了GeoIP.dat,并将其放在webapps下一个名为GeoIP的新文件夹中,这样我的所有应用程序都可以使用它。

以下代码用于从用户IP地址获取国家/地区代码:

代码语言:javascript
复制
import com.maxmind.geoip.*;
import java.io.IOException;

class CountryLookupTest {
    public static void main(String[] args) {
    try {
        String sep = System.getProperty("file.separator");
        String dir = "C:/Program Files/Apache Software Foundation/Tomcat 7.0/GeoIP";
        String dbfile = dir + sep + "GeoIP.dat"; 

        LookupService cl = new LookupService(dbfile,LookupService.GEOIP_MEMORY_CACHE);

        System.out.println(cl.getCountry("151.38.39.114").getCode());
        System.out.println(cl.getCountry("151.38.39.114").getName());
        System.out.println(cl.getCountry("12.25.205.51").getName());
        System.out.println(cl.getCountry("64.81.104.131").getName());
        System.out.println(cl.getCountry("200.21.225.82").getName());

        cl.close();
    }
    catch (IOException e) {
        System.out.println("IO Exception");
    }
    }
}

希望这篇文章能对其他人有用。

票数 1
EN

Stack Overflow用户

发布于 2013-09-03 21:01:45

根据MaxMind dev site的说法,该应用程序接口在Maven Central Repository上可用。你不需要编译任何东西,除非你下载了源码包。

票数 0
EN

Stack Overflow用户

发布于 2017-02-08 20:51:37

现在使用以下代码:

代码语言:javascript
复制
    public String IpGeoLocation(String IP) {
        try {
            String dbfile = "C:\\Users\\User Name \\Documents\\NetBeansProjects\\IP Tools\\resources/GeoIP.dat";
            String location = "";
            LookupService cl = new LookupService(dbfile, LookupService.GEOIP_MEMORY_CACHE);
            location = cl.getCountry(IP).getName() + " " + cl.getCountry(IP).getCode();
            cl.close();
            return location;
        } catch (Exception e) {
                           return "Error";
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18589433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档