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

SWT/JFace Java Discussion :

Problème avec JFreeChart dans RCP


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2003
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 51
    Par défaut Problème avec JFreeChart dans RCP
    Bonjour à tous...

    Je développe un soft avec RCP et j'ai bien tenté d'y intégrer un composant JFreeChart mais ca me plante à la gueule...

    Alors pour tester, j'ai créer un nouveau projet tout simple avec une vue dans laquelle je souhaite afficher un composant JFreeChart et là pareil...

    Voila ce que ca donne : VOIR L'IMAGE

    L'erreur est simple :
    java.lang.NoClassDefFoundError: org/jfree/data/general/DefaultPieDataset
    Or je pense avoir correctement référencé toutes mes librairies ".jar"... enfin je crois :S

    J'ai pourtant appliqué ce que j'ai pu lire à cette adresse à la lettre :
    http://www.vogella.de/articles/Eclip...t/article.html

    Et je ne comprends vraiment pas...
    En ce qui concerne les versions, j'ai pris JCommon 1.0.12 et JFreeChart 1.0.9 (normal, experimental et swt).
    Tout ca pour essayer de faire un camembert...

    J'en appelle donc à vos connaissances pour m'aider à avancer un peu...
    Si vous avez besoin d'infos complémentaires, n'hésitez pas... je vous file même le code (c'est le même quasiment que sur le site) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    package diagramtest;
     
    import java.awt.Font;
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.ui.part.ViewPart;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.PiePlot;
    import org.jfree.data.general.DefaultPieDataset;
    import org.jfree.data.general.PieDataset;
    import org.jfree.experimental.chart.swt.ChartComposite;
     
    public class VueGraphic extends ViewPart {
     
    	public VueGraphic() {
    		// TODO Auto-generated constructor stub
    	}
     
    	private static PieDataset createDataset() {
    		DefaultPieDataset dataset = new DefaultPieDataset();
    		dataset.setValue("One", new Double(43.2));
    		dataset.setValue("Two", new Double(10.0));
    		dataset.setValue("Three", new Double(27.5));
    		dataset.setValue("Four", new Double(17.5));
    		dataset.setValue("Five", new Double(11.0));
    		dataset.setValue("Six", new Double(19.4));
    		return dataset;
    	}
     
    	private static JFreeChart createChart(PieDataset dataset) {
     
    		JFreeChart chart = ChartFactory.createPieChart("Pie Chart Demo 1", // chart
    				// title
    				dataset, // data
    				true, // include legend
    				true, false);
     
    		PiePlot plot = (PiePlot) chart.getPlot();
    		plot.setSectionOutlinesVisible(false);
    		plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
    		plot.setNoDataMessage("No data available");
    		plot.setCircular(false);
    		plot.setLabelGap(0.02);
    		return chart;
     
    	}
     
    	@Override
    	public void createPartControl(Composite parent) {
    		// TODO Auto-generated method stub
    //		Text text = new Text(parent, SWT.BORDER);
    //		text.setText("Imagine a fantastic user interface here");
     
    		JFreeChart chart = createChart(createDataset());
    		final ChartComposite frame = new ChartComposite(parent, SWT.NONE,
    				chart, true);
     
    	}
     
    	@Override
    	public void setFocus() {
    		// TODO Auto-generated method stub
     
    	}
     
     
    }
    Comme vous pouvez le voir, j'ai référencé les JAR comme des librairies utilisateurs... J'ai également tenté de faire un import d'EXTERNAL JARS et ca change rien...

    Voila...

    Merci beaucoup à tous par avance !!

    ++

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut RCP - JFreeChart
    Salut !

    Tout d'abord, je n'ai jamais intégré JFreeChart avec Eclipse RCP. Mais bon, il n'y a pas de raison ... le truc, c'est que visiblement, tu as bien jfreechart dans ton classpath pour lacompilation, mais pas pour l'exécution. Dans ton plugin (c'est bien un plugin que tu fais ? ce peut être une vue, une perspective, ...), tu dois avoir un dossier lib ou un truc comme ça. S'il s'agit bien d'un plugin, il me semble que dans le xml de conf de ton plugin, tu lui donnes les dépendances (jars, ...). C'est là que tu dois ajouter jfreechart ...

    bonne chance

    Merci pour ton MP et donc ta confiance ...

    Sur le site d'eclipse, tu dois avoir des infos là dessus

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Par défaut
    Bonjour, ce sujet m'interesse car dans le cadre d'une de mes applications je dois utiliser des graphiques. J'ai donc choisi comme toi JFreeChart.
    Je viens de tester l'exemple que tu mentionne et ça marche nickel.

    Cela ne réponds pas à ta question alors, j'ai téléchargé la dernière version de JFreeChart 1.0.9. J'ai ensuite copié les jar suivants dans le répertoire lib de mon appli RCP:
    jfreechart-1.0.9.jar
    jfreechart-1.0.9-experimental.jar
    jcommon-1.0.12.jar
    jfreechart-1.0.9-swt.jar
    swtgraphics2d.jar

    Et ensuite tu ouvre le fichier plugin.xml de ton projet RCP.
    Dans l'onglet Runtime tu clique sur Add dans la frame ClassPath et tu ajoute les jar précédent.

    Et voilà.

  4. #4
    Membre averti
    Inscrit en
    Février 2003
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 51
    Par défaut
    Merci pour votre aide...

    Effectivement les jar étaient mal rattachés ce qui fait que ca compilait mais ca ne s'exécutait pas comme il le fallait...

    Aprés maintes manipulations plus ou moins sioux, j'ai fini par réussir à les rattacher comme il le fallait au projet... mais autant vous dire que le comportement de RCP est assez particulier... il ne suffit pas de les ajouter au projet en EXTERNAL JARS mais il faut également aller le spécifier dans le plugin.xml...

    Merci encore

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 46
    Par défaut
    Bonjour à vous,

    Je suis tombé sur ce post aprés deja beaucoup de recherches...

    J'ai la même erreur :
    java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset

    sauf que je compile mon appli en ligne de commande...

    j'ai bien le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.jfree.data.general.PieDataset;
    je compile avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath ./lib/jfreechart-1.0.13.jar:./jcommon-1.0.16.jar Test.java
    le programme compile sans erreur

    mais à l'execution il me sort l'erreur:
    java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset

    qu'ai je oublier????

    Merci d'avance pour vos reponses.

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah il faut aussi utiliser le -classpath pour la commande java (ou renseigner l'attribut classpath de ton manifest si ton appli est contenue dans un jar).

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

Discussions similaires

  1. Faire des camemberts - Problème avec JFreeChart sous appli RCP
    Par cdryk dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 31/03/2008, 14h17
  2. [PL SQL] Problème avec 'case' dans une fonction
    Par divail dans le forum Oracle
    Réponses: 14
    Dernier message: 13/03/2006, 15h50
  3. Problème avec Between dans un code
    Par Sendo dans le forum Access
    Réponses: 4
    Dernier message: 02/10/2005, 18h44
  4. problème avec graphique dans état access
    Par petitmic dans le forum Access
    Réponses: 5
    Dernier message: 07/09/2005, 14h55
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

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