Domanda

Ho un progetto Java che sto lavorando su cui stava lavorando fino a pochi giorni fa. Non sono sicuro di quello che ho fatto al mio Eclipse set-up per il tubo, ma ora sto ottenendo un java.lang.ClassNotFoundException quando cerco di eseguire del codice che accede l'API di Google finanza. Ho costruito una piccola applicazione di test che utilizza la finanza API di Google da solo e che sembra funzionare. Quindi, penso che questo sia un problema specifico progetto. Qualsiasi aiuto sarebbe molto apprezzato. Ecco l'analisi dello stack:

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
È stato utile?

Soluzione

La tua classpath del progetto è carente google-collect-1.0-rc1.jar

È, ovviamente, ce l'ha sul disco rigido, basta modificare il classpath progetto e inserirlo lì (o assicurarsi che viene aggiunto da Maven / come se li si usa).

Altri suggerimenti

Si dovrà essere a conoscenza della differenza tra due messaggi di errore simili. Vi consiglio di leggere il fantastico "Differenza tra ClassNotFoundException e NoClassDefFoundError" articolo dal Sanjiv Jivan. http://www.jroller.com/sjivan/entry/difference_between_classnotfoundexception_and_noclassdeffounderror

Ho eseguito tutto il problema simile. Non ho trovato google-collect-1.0-rc1.jar in GData API. Ma questo filo risolto il mio problema :

  • Aggiungi guava.xxx.jar nel progetto. Guava è un superset pienamente compatibile del vecchio Google Collezioni Biblioteca.
  • Potete trovare guava-xxxx.jar in Gdata-campioni / java / dipendenze / guava.xxxx.jar. O scaricarlo dal qui .

Google consiglia di Guava, invece di google-collect-1.0.jar. vedere qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top