java.lang.ClassNotFoundException
-
26-09-2019 - |
Frage
ich ein Java-Projekt haben, dass ich an dem ich arbeitete bis vor wenigen Tagen zu arbeiten. Ich bin nicht sicher, was ich meine Eclipse-Set-up tat es Schlauch aber jetzt bin ich immer ein java.lang.ClassNotFoundException wenn ich versuche, einige Code ausführen, der die Google Finance api zugreift. Ich habe eine kleine Testanwendung gebaut, dass die Google Finance api auf seinem eigenen verwendet und scheint zu funktionieren. Also, ich denke, das ein Projekt spezifisches Problem ist. Jede Hilfe wäre sehr geschätzt. Hier ist der Stack-Trace:
ptolemy.kernel.util.IllegalActionException: in .RandomSearch.manager
Because:
com/google/common/collect/Maps
at ptolemy.actor.Manager.execute(Manager.java:472)
at ptolemy.actor.Manager.run(Manager.java:1119)
at ptolemy.actor.Manager$3.run(Manager.java:1160)
Caused by: java.lang.NoClassDefFoundError: com/google/common/collect/Maps
at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:118)
at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:100)
at com.google.gdata.client.Service.<clinit>(Service.java:546)
at AtomicBroadcast.GoogleFinance.GooglePortfolioReader.fire(GooglePortfolioReader.java:108)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:458)
at ptolemy.actor.Manager.iterate(Manager.java:714)
at ptolemy.actor.Manager.execute(Manager.java:349)
... 2 more
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
... 10 more
Caused by: java.lang.NoClassDefFoundError: com/google/common/collect/Maps
at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:118)
at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:100)
at com.google.gdata.client.Service.<clinit>(Service.java:546)
at AtomicBroadcast.GoogleFinance.GooglePortfolioReader.fire(GooglePortfolioReader.java:108)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:458)
at ptolemy.actor.Manager.iterate(Manager.java:714)
at ptolemy.actor.Manager.execute(Manager.java:349)
at ptolemy.actor.Manager.run(Manager.java:1119)
at ptolemy.actor.Manager$3.run(Manager.java:1160)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
... 10 more
Lösung
Es scheint, dass Ihr Projekt Classpath google-collect-1.0-rc1.jar
fehlt
Sie haben offensichtlich es auf Ihrer Festplatte, nur bearbeiten das Projekt Classpath und fügen Sie dort (oder stellen Sie sicher, wird es hinzugefügt von Maven / so, wenn Sie sie verwenden).
Andere Tipps
Sie werden sich der Unterschied zwischen zwei ähnlichen Fehlermeldungen sein. Ich schlage vor, Sie den fantastischen Artikel „Der Unterschied zwischen ClassNotFoundException und NoClassDefFoundError“ von Sanjiv Jivan lesen. http://www.jroller.com/sjivan/entry/difference_between_classnotfoundexception_and_noclassdeffounderror
Ich laufe über das ähnliche Problem. Ich habe nicht google-collect-1.0-rc1.jar
in gdata api gefunden.
Aber diese Thread mein Problem gelöst:
- Fügen Sie guava.xxx.jar in Ihr Projekt. Guava ist eine vollständig kompatible Obermenge der alten Google Sammlungen Bibliothek.
- Sie können Guave-xxxx.jar in gdata-samples / java / deps / guava.xxxx.jar finden. Oder laden Sie es von hier .
Google empfiehlt Guava statt Google-collect-1.0.jar. sehen hier