eclipse执行jar文件在linux机器上运行

时间:2013-11-12 20:15:09

标签: java linux eclipse jar noclassdeffounderror

我的主要代码有两个类,main有两个引用

LookupService citylookup = new LookupService("D://GeoLiteCity.dat"...
FileReader fr =new FileReader("d:\\IP.txt");

我将它们导出到可执行的jar文件中,然后我得到D://testIP.jarD://testIP_lib/reference libraries...jar

我运行java -jar testIP.jar并且有效。

但是,我修改了对linux机器路径的引用:/home/admin/GeoLiteCity.dat/home/admin/IP.txt并将textIP.jartestIP_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 我不知道应该在哪里设置? 谢谢。

2 个答案:

答案 0 :(得分:2)

听起来像两个环境之间的类路径差异。检查两个环境中的CLASSPATH环境变量,并检查jar中Class-Path文件中的MANIFEST.MF条目。我怀疑Eclipse在jar中的Manifest文件中使用基于Windows的Class-Path条目构建了jar。

答案 1 :(得分:1)

如果这有任何帮助。

  

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

     

http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html

您必须了解如何在Linux环境中使用类路径。