我的主要代码有两个类,main有两个引用
LookupService citylookup = new LookupService("D://GeoLiteCity.dat"...
FileReader fr =new FileReader("d:\\IP.txt");
我将它们导出到可执行的jar文件中,然后我得到D://testIP.jar
和D://testIP_lib/reference libraries...jar
我运行java -jar testIP.jar
并且有效。
但是,我修改了对linux机器路径的引用:/home/admin/GeoLiteCity.dat
和/home/admin/IP.txt
并将textIP.jar
和testIP_lib
以及GeoLiteCity.dat IP.txt
移至/home/admin/
我再次运行java -jar testIP.jar
我收到错误
Exception in thread "main" java.lang.NoClassDefFoundError: com/maxmind/geoip/LookupService
at testIP.CountryLookupTest.main(CountryLookupTest.java:18)
我检查它们是java 1.7..version 我不知道应该在哪里设置? 谢谢。
答案 0 :(得分:2)
听起来像两个环境之间的类路径差异。检查两个环境中的CLASSPATH
环境变量,并检查jar中Class-Path
文件中的MANIFEST.MF
条目。我怀疑Eclipse在jar中的Manifest文件中使用基于Windows的Class-Path
条目构建了jar。
答案 1 :(得分:1)