Je prends "java".lang.ClassNotFoundException: com.Google.gson.Erreur Gson " même si elle est définie dans mon classpath

j'essaie d'analyser quelques chaînes d'objets JSON que j'obtiens en utilisant gson-1.6.pot je l'ai placé dans le même emplacement que mes autres .jars et l'ont ajouté à mon buildpath dans eclipse.

Les autres bibliothèques a bien fonctionné quand j'ai ajouté et je peux les utiliser sans aucun problème, mais lorsque j'essaie de créer l'objet JSON, j'ai le titulaire d'erreur. J'ai regardé à travers les autres questions avec cette erreur, mais je n'ai pas pu trouver une solution qui n'impliquait pas quelque chose que j'ai essayé ou quelque chose de différent.

je l'importer près de la partie supérieure à l'aide de:

import com.google.gson.Gson;

Puis utiliser plus tard dans une fonction statique comme suit:

Gson g = new Gson();

Voici mon fichier classpath généré par eclipse [chemin] substitué au chemin actuel:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6">
        <attributes>
            <attribute name="owner.project.facets" value="java"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5">
        <attributes>
            <attribute name="owner.project.facets" value="jst.web"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="lib" path="[Path]/jabbabase-ws-jwsdp-client-2.4.7.jar"/>
    <classpathentry kind="lib" path="[Path]/log4j-1.2.16.jar"/>
    <classpathentry kind="lib" path="[Path]/gson-1.6.jar"/>
    <classpathentry kind="output" path="build/classes"/>
</classpath>

ainsi que ma fenêtre de chemin de construction: Build Path Screen

je suis un peu perdu à ce point. J'ai essayé Google et les messages disent simplement d'ajouter à votre chemin de construction. Quelqu'un a des des idées?

Edit: Plus D'Infos

le code de référence com.Google.gson.GSON est utilisé comme haricot par un jsp. Cette fonction est appelée à partir de la jsp et l'erreur se produit dès que la fonction est exécutée. La première ligne de la fonction est:

Gson g = new Gson();

Il semble compiler et déployer bien, mais quand il est exécuté, j'obtiens le message d'erreur.

Merci

26
demandé sur Fry 2011-02-10 21:52:41

7 réponses

dans le cas D'une webapplication JSP/Servlet, vous avez juste besoin de laisser tomber les fichiers JAR tiers dans /WEB-INF/lib dossier. Si le projet est un Projet Web Dynamique, puis Eclipse prendra automatiquement soin de définir le chemin construit correctement. Vous n' besoin de jouer avec Eclipse buildpath. N'oubliez pas d'annuler tout.

54
répondu BalusC 2011-02-10 18:54:59

j'ai fait face au même problème et essayé les solutions ci-dessus, mais aucune d'elles n'a fonctionné pour moi. Puis j'ai essayé les étapes suivantes et le problème a été résolu:

  • allez aux propriétés du projet.
  • allez à L'option Java Build Path.
  • puis Ajouter *.jar fichier en jar externe.
  • puis allez à l'option Commande et exportation et sélectionnez les bibliothèques et bocaux du projet.
  • enregistrer les modifications et nettoyer le projet et exécutez le projet encore.
19
répondu karn 2012-05-15 09:47:54

Cliquez sur Deployment Assembly (juste au-dessus de Java Build Path que vous montrez comme actif) et assurez-vous que vous voyez json-lib-2.4-jdk15.jar.

Habituellement, vous devez l'ajouter à votre chemin et à l'exportation de votre projet. Une fois qu'il est exporté, vous verrez l'avertissement WTP qu'il ne fait pas partie du déploiement. Choisissez l' Quick Fix option et l'ajouter à votre chemin de déploiement.

5
répondu Alexander Pogrebnyak 2011-02-10 19:02:02

j'avais juste le même problème...

pour résoudre le problème (au moins dans mon cas) assurez-vous d'avoir inclus le dossier lib dans votre classpath bundle:

Manifest-Version: 1.0
... 
Bundle-ClassPath: lib/gson-1.6.jar,
 .
...

Ou si vous voulez inclure tous les jar dans le dossier:

Bundle-ClassPath: lib/

vous aurez toujours besoin de placer les fichiers jar sur le chemin de construction java comme indiqué ci-dessus. Ensuite importées pot doit apparaître dans le dossier "Référencé Bibliothèques"

3
répondu Joseph Carroll 2012-05-25 14:00:25

Eh bien pour moi le problème a été résolu en ajoutant les pots dans mon dossier APACHE/TOMCAT/lib ! .

1
répondu karthik339 2013-01-08 05:43:42

j'ai eu le même problème lors du développement d'un noeud KNIME/plugin dans L'environnement Eclipse. La solution n'était pas seulement d'ajouter le gson.jar comme un JAR externe au chemin de construction, il était également nécessaire d'aller à plugin.xml, puis l'onglet Dépendances et ajouter com.Google.gson comme plugin.

0
répondu mwdoerner 2017-05-23 11:42:43

faites la correction rapide dans L'onglet marqueurs.

Image Source metamug.com

Référence: https://metamug.com/blog/eclipse-gson-class-not-found

0
répondu Sorter 2018-09-25 14:09:46