Java GeoLite2数据库添加到jar时会损坏

Java GeoLite2数据库添加到jar时会损坏,java,maxmind,Java,Maxmind,我试图在Java应用程序中包含一个Maxmind数据库。我使用的数据库是最新版本的GeoLite2 City.mmdb 当我将数据库文件放入项目(src/main/resources/GeoLite2 City.mmdb)并运行该项目时,我能够通过com.maxmind.geoip2.DatabaseReader使用数据库并执行IP地址查找 但是,一旦我编译了项目并创建了一个包含数据库的jar文件,我就无法读取该文件中的数据库,我得到了一个异常: com.maxmind.db.InvalidDa

我试图在Java应用程序中包含一个Maxmind数据库。我使用的数据库是最新版本的
GeoLite2 City.mmdb

当我将数据库文件放入项目(
src/main/resources/GeoLite2 City.mmdb
)并运行该项目时,我能够通过
com.maxmind.geoip2.DatabaseReader
使用数据库并执行IP地址查找

但是,一旦我编译了项目并创建了一个包含数据库的jar文件,我就无法读取该文件中的数据库,我得到了一个异常:

com.maxmind.db.InvalidDatabaseException:在此文件()中找不到maxmind db元数据标记。这是有效的MaxMind DB文件吗?

解压缩.jar文件并查看mmdb文件,我可以看到文件大小已从38Mb更改为59Mb,我猜这就是引发异常的原因

有人知道如何将这个文件打包到一个.jar中,使其可用吗?我尝试将原始的.gz文件添加到包中,然后解压缩,然后加载数据库,但这也不起作用


谢谢

您没有提到如何创建JAR,但是假设您使用的是Maven,您需要为二进制文件创建JAR,例如:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.7</version>
    <configuration>
      ...
      <nonFilteredFileExtensions>
        <nonFilteredFileExtension>mmdb</nonFilteredFileExtension>
      </nonFilteredFileExtensions>
      ...
    </configuration>
  </plugin>

org.apache.maven.plugins
maven资源插件
2.7
...
内存数据库
...

完成了任务。我不得不将版本更改为2.6,但它可以工作。ThanksI具有相同的错误消息,但与Ant的jar任务相同。那也会过滤吗?