java - eclipse execute jar文件在linux机器上运行

标签 java linux eclipse jar noclassdeffounderror

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

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 机器路径的引用 ex: /home/admin/GeoLiteCity.dat/home/admin/IP.txt 并移动 textIP.jartestIP_libGeoLiteCity.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 我不知道我应该在哪里设置? 谢谢。

最佳答案

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

关于java - eclipse execute jar文件在linux机器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939010/

相关文章:

java - 使用 Java 通过 inode 查找文件

java - 从java中的集合中绘制一个项目

java - 单元测试时出错

java - 使用Java EE拦截一个WEBAPP的所有请求

linux - 结合 echo 和文件作为命令的输入

linux - ALSA 中的多个音频编解码器

java - 如何根据 TableView 中一行的两个属性将条件格式应用于 TableCell 文本字段

Java MySQL事务和executeBatch

java - 重命名文件(如果存在)

java - 创建4+1架构模型