IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Java Discussion :

Utilisation de JFreeChart sous Eclipse : NoClassDefFoundError


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut Utilisation de JFreeChart sous Eclipse : NoClassDefFoundError
    Bonjour,

    Je souhaite utiliser JFreeChart dans mon application Java.

    J'utilie Eclipse pour le développement et Maven pour gérer les dépendances.

    J'ai ajouté JFreeChart dans le fichier pom de mon projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        <dependency>
          <groupId>jfree</groupId>
          <artifactId>jfreechart</artifactId>
          <version>1.0.7</version>
        </dependency>
    Le téléchargement de la librairie et de ses dépendances s'est bien effectué : je dispose bien de jfreechart et de jcommon dans les dépendances Maven de mon projet, les jar apparaissent même dans Eclipse sous le répertoire Maven2 Depedencies qui apparaît grâce au plugin Maven d'Eclipse.

    J'ai fait un programme qui se résout au minimum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      public static void main(String[] args) {
        LOG.info("toto");
        XYSeries series = new XYSeries("XYGraph");
      }
    Mais quand je le lance, j'obtiens l'erreur suivante :
    java.lang.NoClassDefFoundError: org/jfree/data/xy/XYSeries
    at org.myapp.performance.analyse.charts.GrapheReception.main(GrapheReception.java:47)

    Pourtant encore une fois, mon code compile et lorsque je vais sur l'import de la classe XYSeries et que je tape F3, j'arrive bien à la définition de la classe.

    J'avoue ne pas voir d'où pourrait venir le problème.
    Bref : au secours !

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,
    Est ce que c'est une application Web ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut
    Non, ce n'est pas une application web.

    En fait j'ai inséré dans une de mes classes un main() qui contient le code d'un tutoriel JFreeChart que j'ai trouvé sur internet, que je lance depuis Eclipse, par clic-droit > Run As... > Java Application.

    Quand j'avais le code trouvé sur le web en entier, j'avais à la fois le NoClassDefFoundError et aussi un message d'alerte "le programme main n'a pas pu être trouvé". Afin de mieux identifier le problème j'ai réduit le code du main() à sa moindre expression (c'est le moins que l'on puisse dire) et je n'ai plus que l'erreur NoClassDefFoundError mais je m'en arrache les cheveux. J'ai relancé Eclipse, fait un clean sur mon projet, rien n'y fait

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Oki.
    Je n'ai jamais utilisé le plugin maven pour eclipse, donc je voulais te demander est ce que ce plugin ajoute automatiquement les dépendances au buildpath d'eclipse ?
    Essaies de le vérifier en faisant un clic-droit sur le projet>Buil path > Configure Build Path. Est ce que JFreChart existe dans la liste ? (Normalement c'est non vu l'erreur que tu reçois).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut
    Normalement, oui, le plugin Maven permet d'ajouter les librairies au buildpath.

    J'ai d'ailleurs fait le test en créant une autre petite application qui utilise une autre classe d'une dépendance Maven (une classe de Axis en l'occurrence) et ça marche sans problème.

    Par contre quand c'est une classe de JFreeChart, toujours la même erreur.

    J'ai alors ajouté le jar "à la main" dans les dépendances, ça ne compile plus car la librairie est dupliquée dans le classpath.

    Si j'enlève la dépendance du pom et que je garde l'import "à la main", là, ça marche. C'est très bizarre.

    Je ne sais pas si c'est le pom que les créateurs de JFreeChart ont mis sur le site de maven qui fait que ça ne marche pas mais je ne comprends vraiment pas.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 21
    Par défaut
    J'ai résolu mon problème :
    1. en ajoutant les dépendances dans mon fichier pom uniquement
    2. en changeant l'ordre du build class path pour mettre mes dépendances Maven avant l'import d'un de mes sous projets


    Ca marche donc ça me va mais je ne comprends absolument pas pourquoi cela change quelque chose : si des classes ou des packages avaient eu le même nom dans toutes les dépendances (Maven et sous-projets) pourquoi pas, mais en l'occurrence ce n'est pas le cas.

    Je pense donc qu'il doit s'agir d'un bug du plugin Maven d'Eclipse mais je n'en suis pas sur à 100% et je n'ai malheureusement pas le temps de creuser ce point.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'AXIS sous Eclipse
    Par maya dans le forum Services Web
    Réponses: 3
    Dernier message: 21/10/2008, 15h11
  2. Comment utiliser le debugger sous Eclipse avc wxWidgets
    Par Muetdhiver dans le forum Eclipse C & C++
    Réponses: 3
    Dernier message: 29/09/2008, 16h55
  3. Utiliser des piles sous Eclipse
    Par Dizayeure dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/11/2007, 08h25
  4. utilisation de jfreechart sous myeclipse
    Par dreamer dans le forum 2D
    Réponses: 4
    Dernier message: 16/08/2007, 14h54
  5. utilisation de jfreechart sous myeclipse
    Par dreamer dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 10/08/2007, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo