我正在开发一个Java应用程序但是我得到了一个java.lang.NoClassDefFoundError。 我检查了我能想到的一切:
它在我的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
由于 罗伯特
答案 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,它再次编译并运行没有问题。