Java 编译 maxmind geoip LookupService 类时遇到问题

标签 java class geoip maxmind

我想知道是否有人可以帮忙,因为我正在努力编译 maxmind.geoip.LookupService.java

我已经下载了 geoip-api-1.2.10.jar 以包含在 WEB-INF\lib 中,并且我已在我的类路径中引用了它,但它无法编译。

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

com.maxmind.geoip.Country
com.maxmind.geoip.DatabaseInfo
com.maxmind.geoip.Location
com.maxmind.geoip.Region
com.maxmind.geoip.timeZone

似乎找不到 com.maxmind.geoip 的完整编译 java 类,任何帮助将不胜感激:-)

最佳答案

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

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地址获取国家代码:

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");
    }
    }
}

希望这对其他人有用。

关于Java 编译 maxmind geoip LookupService 类时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589433/

相关文章:

java - 使用正则表达式清理文本

android - 如何获取给定经纬度的状态(无 map 显示,需要存储)?

elasticsearch - Elasticsearch GeoIp位置不是geo_point类型

java - 在 ISO 8601 中获取 WEEK_OF_YEAR

java - INSTALL_FAILED_MISSING_SHARED_LIBRARY 和意外的顶级异常

php - 调用非对象的成员函数

c++ - 如何使用 C++ 中的函数永久更改类属性值?

c++ - c++中的一个问题。只是想要一个简单的方法来做到这一点/

php - 我如何从 GeoIP2 获取美国各州?

java - 如何将 Hibernate 与映射到不同数据库的自定义字段类型一起使用?