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
War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top