Я работаю над проектом EMF, где я создал модель ecore из файла mdl. Я создал соответствующий файл gencore и сгенерировал код из файла gencore. Хотя EMF имеет собственный механизм сериализации на основе XMI, я хочу поддержать мой проект собственным механизмом сериализации.Исключение NoClassDefFoundError при использовании внешней библиотеки в проекте плагина EMF
До сих пор я сделал необходимые шаги, и если я использую отладчик, вызываются соответствующие методы. Чтобы читать и записывать представление файла моей модели, я хочу использовать внешнюю библиотеку. Я сделал следующие шаги
- Создан каталог Lib/в моем плагине проекте, где я поставил внешнюю библиотеку
- Добавлена библиотека в путь сборки проекта
- Добавлено каталог, расслоение-классы (Manifest.mf)
- Добавлен каталог на bin.includes этого build.properties
Если я пытаюсь запустить свой код, я получаю исключение NoClassDefFoundError, и я не знаю, почему , Я создал конфигурацию запуска, в которой я запускаю проект как приложение eclipse. Итак, у кого-то есть идея, что мне не хватает?
Заранее благодарен!
Майкл
Edit: Ниже мой 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
, а также мои 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
Привет Мануэль, я добавил библиотеку (можно добавить только каталоги) в поле Пути к классам на вкладке выполнения (шаг 3 в моей должности), который создает запись о пачке классов в файле. Я посмотрел на вкладку сборки и добавил библиотеку, но это ничего не меняет. – 2010-09-15 12:04:07
Что такое затмение класса с NoclassDefFoundError? Вы запускаете свой код как приложение Eclipse или java-приложение? Вам не нужно делать шаг 2 вашего вопроса, потому что вы пишете плагин. –
Я запускаю код как приложение eclipse. Класс, который он жалуется, это OWLOntologyManager, который является частью библиотеки OWL-API. В методе doSave и doLoad имеется инициализация в первой строке обоих методов. Я построил тестовый проект, в котором я использую библиотеку, и все работает нормально (так что это не проблема с самой библиотекой). Я также попытался (как тест) использовать другой класс из библиотеки, который вызывает одно и то же исключение. – 2010-09-15 12:11:57