2016-11-20 1 views
0

Je reçois plugin Eclipse: java.lang.NoClassDefFoundError pour org/jongo/ResultHandlerEclipse création d'exécution plugin Edition - java.lang.NoClassDefFoundError

Mon code source compilé après avoir ajouté le pot nécessaire files.I ont ajouté ces fichiers jars en utilisant project> build path comme bibliothèques de référence dans Eclipse.

Maintenant, le problème est que ces fichiers jar externes ne fonctionnent pas pendant Runtime.

Mon Le fichier MANIFEST.MF ne contient qu'un seul bocal, pas les bocaux externes. Je ne sais pas comment ajouter des pots externes ici.

Bundle-ClassPath: Test.jar 

Build.properties

source.Test.jar = src/ 
bin.includes = plugin.xml,\ 
       META-INF/,\ 
       Test.jar 

S'il vous plaît suggérer comment exécuter mon application lors de l'exécution qui va chercher des pots externes.

+1

Le pot ne trouve pas un faisceau de OSGi? Dans le cas contraire, vous ne devez pas ajouter le fichier jar aux fichiers jar inclus, mais aux dépendances. Dans le cas contraire, vous devriez également l'ajouter à la partie 'bin.includes' de' build.properties'. –

+0

Merci. Ça marche maintenant :) – Ronak

Répondre

1

N'ajoutez jamais de jarres directement au chemin de construction lors de la création de plugins.

Vous devez inclure tous les jars dans votre plugin (ou d'autres plugins) et définir le Bundle-Classpath et inclure les pots dans le build.properties. Si vous faites référence à d'autres plugins, ajoutez-les simplement aux dépendances de votre plugin.

Vous pouvez les ajouter à MANIFEST.MF à l'aide de l'éditeur MANIFEST.MF/plugin.xml/build.properties.

Dans l'onglet 'Runtime' de l'éditeur, ajoutez les fichiers jars aux entrées 'Classpath' (il devrait aussi y avoir une entrée '.' Pour votre code de plugin principal).

Dans l'onglet "Générer" de l'éditeur, vérifiez tous les fichiers jars que vous souhaitez inclure dans le plug-in. Vous devriez placer les jars quelque part dans votre plugin (un répertoire 'lib' par exemple).

Par exemple, dans ce build.properties:

source.. = src/ 
output.. = bin/ 
bin.includes = META-INF/,\ 
       .,\ 
       plugin.properties,\ 
       plugin.xml,\ 
       lib/jogg-0.0.7.jar,\ 
       lib/jorbis-0.0.15.jar,\ 
       lib/vorbisspi1.0.2.jar,\ 
       icons/ 

J'ai trois pots dans un répertoire 'lib'.

Le MANIFEST.MF pour cela ressemble à:

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: %plugin.name 
Bundle-SymbolicName: greg.music.ogg;singleton:=true 
Bundle-Version: 2.0.0.qualifier 
Bundle-Vendor: %plugin.provider 
Bundle-Localization: plugin 
Require-Bundle: greg.music.core;bundle-version="1.0.0", 
greg.music.resources;bundle-version="1.0.0", 
org.eclipse.core.runtime, 
javazoom.jlgui.basicplayer, 
org.eclipse.e4.core.services;bundle-version="2.0.100" 
Bundle-ClassPath: ., 
lib/jogg-0.0.7.jar, 
lib/jorbis-0.0.15.jar, 
lib/vorbisspi1.0.2.jar 
Bundle-RequiredExecutionEnvironment: JavaSE-1.8 
Import-Package: javax.annotation;version="1.0.0", 
javax.inject;version="1.0.0", 
org.eclipse.e4.core.di.annotations 

onglet Runtime éditeur: enter image description here

onglet Construction: enter image description here

+0

Merci Greg pour l'aide détaillée :) – Ronak