Java没有Class Def错误

时间:2015-04-03 22:56:31

标签: java jar

我正在开发一个Java应用程序但是我得到了一个java.lang.NoClassDefFoundError。 我检查了我能想到的一切:

  • jar文件存在于目录中,不是0字节
  • jar文件与所有其他jar文件具有相同的权限(我用ls -la cmmand显示了这个)
  • jar文件包含报告为缺失的确切类(我已使用jar tf命令在输出中显示此内容)
  • jar文件在-cp选项下的命令字符串中指定我已经改变了类路径中的jar的顺序而另一个
  • jar文件被识别 - 否则程序的其他部分将无法正常工作
  • 这是我正在构建的jar文件
  • 项目在我的笔记本电脑上进行日食工作

它在我的RaspberryPi中不起作用。

我必须在我的Checklist调试ClassNotFound错误中添加其他内容。有没有人有任何建议?

我列出了我在下面运行的支票的输出。

pi@pi-raspbian-main ~/personal_services $ java -cp /home/pi/personal_services/Console/Console.jar:/home/pi/personal_services/lib/Library.jar:/home/pi/personal_services/lib/JavaCommon.jar:/home/pi/personal_services/lib/sqlite-jdbc-3.7.2.jar:/home/pi/personal_services/lib/commons-codec-1.10.jar metcarob.com.personalservices.console.Main /home/pi/personal_services/Console/ConsoleSettings.xml ListNodes
EVALUATING ListNodes
CONNECTING
Exception in thread "ConnectionThread" java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
    at metcarob.com.common.network.xmlprotocol.ConnectionSocketContainer.ProcessIncommingMessages(Unknown Source)
    at metcarob.com.common.network.xmlprotocol.Connection.processIncomingMessages(Unknown Source)
    at metcarob.com.common.network.xmlprotocol.Connection.runDER(Unknown Source)
    at metcarob.com.common.thread.CloseableThread.run(Unknown Source)
RUNNING ListNodes
Closing connection
Closing connection
DONE
pi@pi-raspbian-main ~/personal_services $ jar tf /home/pi/personal_services/lib/commons-codec-1.10.jar | grep Base64
org/apache/commons/codec/binary/Base64.class
org/apache/commons/codec/binary/Base64InputStream.class
org/apache/commons/codec/binary/Base64OutputStream.class
pi@pi-raspbian-main ~/personal_services $ ls -la /home/pi/personal_services/lib/commons-codec-1.10.jar
-rw-r--r-- 1 pi pi 284184 Apr  3 20:54 /home/pi/personal_services/lib/commons-codec-1.10.jar

由于 罗伯特

1 个答案:

答案 0 :(得分:0)

我发现了问题的原因。

我有主应用程序:Console.jar 其中使用了一个utiliy jar:JavaCommon.jar 使用的:commons-codec-1.10.jar

当我构建JavaCommon.jar时,我提供了一个包含commons-codec-1.10.jar的类路径,并且编译没有问题

当我构建Console.jar时,我提供了一个包含JavaCommon.jar但没有包含commons-codec-1.10.jar的类路径,并且编译没有问题

然后当我运行我的应用程序时,我提供了一个包含所有jar的类路径,但我仍然得到了NoClassDefFoundError异常

当我更改构建时,我使用包含所有jar的类路径构建了Console.jar,它再次编译并运行没有问题。