Je travaille sur un projet EMF dans lequel j'ai créé un modèle ecore à partir d'un fichier mdl. J'ai créé le fichier gencore correspondant et généré le code à partir du fichier gencore. Alors que EMF possède un propre mécanisme de sérialisation basé sur XMI, je veux soutenir mon projet avec un mécanisme de sérialisation propre. Jusqu'à présent, j'ai fait les étapes nécessaires et si j'utilise le débogueur, les méthodes correspondantes sont appelées. Pour lire et écrire une représentation de mon modèle, je veux utiliser une bibliothèque externe. Je l'ai fait les étapes suivantesException NoClassDefFoundError lors de l'utilisation de la bibliothèque externe dans le projet plugin EMF
- créé un répertoire lib/dans mon projet de plug-in où j'ai mis la bibliothèque externe
- Ajouté la bibliothèque sur le chemin de la construction du projet
- Ajouté le répertoire le faisceau-classpath (Manifest.mf)
- ajouté le répertoire aux bin.includes des build.properties
Si je tente d'exécuter mon code, je reçois une exception NoClassDefFoundError et je ne sais pas pourquoi . J'ai créé une configuration d'exécution dans laquelle je démarre le projet sous la forme d'une application éclipse. Alors quelqu'un a une idée de ce qui me manque?
Merci d'avance!
Michael
Edit: Voici mon fichier Manifest.mf
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: de.hs_rm.cs.vs.dsm.OWL
Bundle-SymbolicName: de.hs_rm.cs.vs.dsm.owl;singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: lib/,
.
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: owl,
owl.impl,
owl.util,
rdfs,
rdfs.impl,
rdfs.util
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore;visibility:=reexport
Bundle-ActivationPolicy: lazy
et aussi mes build.properties
bin.includes = .,\
model/,\
META-INF/,\
plugin.xml,\
plugin.properties,\
lib/
jars.compile.order = lib/,\
.
source.. = src/
output.. = bin/
source.lib/ = lib/
jars.extra.classpath = lib/owlapi-bin.jar
Salut Manuel, j'ai ajouté la bibliothèque (vous ne pouvez ajouter des répertoires) dans le champ classpath sur l'onglet d'exécution (étape 3 dans mon post original) qui crée un faisceau-classpath d'entrée dans le fichier. J'ai jeté un oeil sur l'onglet de construction et ajouté la bibliothèque, mais cela ne change rien du tout. –
Qu'est-ce que la classe eclipse se plaint de NoclassDefFoundError? Lancez-vous votre code en tant qu'application Eclipse ou application Java? Vous n'avez pas à faire l'étape 2 de votre question parce que vous écrivez un plugin. –
Je lance le code en tant qu'application eclipse. La classe dont il se plaint est OWLOntologyManager qui fait partie de la bibliothèque OWL-API. Il y a une initialisation dans la méthode doSave et doLoad dans la première ligne des deux méthodes. J'ai construit un projet de test où j'utilise la bibliothèque et tout fonctionne bien (donc, ce n'est pas un problème avec la bibliothèque elle-même). J'ai également essayé (en tant que test) d'utiliser une autre classe de la bibliothèque qui provoque la même exception. –