【发布时间】:2016-03-30 17:14:06
【问题描述】:
我正在尝试在我的 Java 应用程序中包含一个 Maxmind 数据库。我使用的数据库是GeoLite2-City.mmdb的最新版本。
当我将数据库文件放入项目 (src/main/resources/GeoLite2-City.mmdb) 并运行项目时,我可以通过 com.maxmind.geoip2.DatabaseReader 使用数据库并执行 IP 地址查找。
但是,一旦我编译了项目并创建了一个包含数据库的 jar 文件,我无法读取文件中的数据库,我得到了异常:
com.maxmind.db.InvalidDatabaseException: Could not find a MaxMind DB metadata marker in this file (<InputStream>). Is this a valid MaxMind DB file?
解压 .jar 文件,查看 mmdb 文件,我可以看到文件的大小从 38Mb 变为 59Mb,我猜这就是引发异常的原因。
有谁知道将这个文件打包到 .jar 中以便使用的方法?我尝试将原始 .gz 文件添加到包中,然后将其解压缩,然后加载数据库,但这也不起作用。
谢谢
【问题讨论】: