2017-09-28 1 views
0

J'apprends le développement rcp, et actuellement j'essaie d'importer des widgets SWT dans une application RC4 e4, mais j'ai des problèmes. J'ai trouvé des jarres pour le composant XYGraph here, et du didacticiel de lars Vogel, j'ai appris à importer des jarres dans une application RCP: j'ai créé un "Project from jars" en éclipse, dans lequel j'ai mis tous les bocaux (non seulement ceux mentionnés ci-dessus, mais aussi d'autres du projet nébuleuse, mais pas lié au problème que je rencontre). puis, j'ai ajouté le projet plugin avec les jars dans le fichier manifeste de mon application RCP (dans l'onglet dépendances). Après cela, j'ai ajouté les bonnes instructions "import" dans mon fichier pièce, et tout devrait être bon ... mais je reçois cette erreur lorsque je lance l'application RCP (à partir du fichier produit): java.lang.NoClassDefFoundError: org/Eclipse/draw2d/IFigure à la ligne 51ajouter des jars dans une application RCP via un projet Eclipse externe

ici moi est un fichier RCP @PostConstruct: une flèche indique la ligne 51

@PostConstruct 
public void postConstruct(Composite parent) { 
    parent.setLayout(new FillLayout(SWT.HORIZONTAL)); 

    Canvas canvas = new Canvas(parent, SWT.NONE); 

    LightweightSystem lws = new LightweightSystem(canvas); 


    // create a new XY Graph. 
    XYGraph xyGraph = new XYGraph(); <---- line 51 
    xyGraph.setTitle("Simple Example"); 
    // set it as the content of LightwightSystem 
    lws.setContents(xyGraph); 

    // create a trace data provider, which will provide the data to the 
    // trace. 
    CircularBufferDataProvider traceDataProvider = new CircularBufferDataProvider(
      false); 
    traceDataProvider.setBufferSize(100); 
    traceDataProvider.setCurrentXDataArray(new double[] { 10, 23, 34, 45, 
      56, 78, 88, 99 }); 
    traceDataProvider.setCurrentYDataArray(new double[] { 11, 44, 55, 45, 
      88, 98, 52, 23 }); 

    // create the trace 
    Trace trace = new Trace("Trace1-XY Plot", xyGraph.primaryXAxis, 
      xyGraph.primaryYAxis, traceDataProvider); 

    // set trace property 
    trace.setPointStyle(PointStyle.XCROSS); 

    // add the trace to xyGraph 
    xyGraph.addTrace(trace); 
} 

avez-vous une idée sur l'origine de cette erreur?

EDIT: voici tous les 4 fichiers:

NebulaJars (jars plugin): MANIFEST.MF 
https://paste.ofcode.org/mchNUQdCpGde3Tf2yKp8Qr 
NebulaJars (jars plugin): build.properties 
https://paste.ofcode.org/J6UHffTrjvGfWvHSqunQks 
RCP project: 
MANIFEST.MF 
https://paste.ofcode.org/hR7ZkU85qXAqBPjTam53nV 
build.properties 
https://paste.ofcode.org/DWEc8SV9U85rHMKk4Eb9X3 

EDIT 2: enter image description here

+0

Avez-vous ajouté le plug-in contenant ces pots aux dépendances de votre plugin? Avez-vous exporté les paquets dans le plugin contenant les pots? Montrez-nous les fichiers MANIFEST.MF et build.properties pour les deux plugins. –

Répondre

0

Avez-vous ajouté les paquets exportés correspondants dans l'onglet d'exécution du fichier manifest créé pour XYGraph (et d'autres ...) brancher ?

EDIT 1: Essayez de régler vos plugins à partir de votre configuration de lancement. Vous pouvez accéder à la configuration de lancement à partir du menu Exécuter-> Exécuter les configurations .... Vérifiez si la configuration de votre plugin est valide.

enter image description here

+0

bonjour, j'ai corrigé ceci: j'ai trouvé le bon pot sur le net, et l'ai ajouté au plugin jars (en utilisant ton indice) et ... j'ai d'autres erreurs, non observées: la dernière est: "org.eclipse.e4 .core.di.InjectionException: java.lang.NoClassDefFoundError: org/eclipse/jface/resource/ColorRegistry ", bien que la classe correcte soit dans les" dépendances de plugin "de mon projet RCP. Je ne comprends pas pourquoi ces classes ne sont pas dans le classpath – lolveley

+0

J'ai "org.eclipse.jface" dans les dépendances de mon fichier manifeste – lolveley

+0

Je veux dire le manifeste du projet rcp – lolveley