2011-07-14 4 views
0

J'essaye de créer un plugin eclipse qui utilise JOGL pour afficher un contenu d'éditeur.
J'ai emballé les bibliothèques requises (JOGL, Nativewindow et Gluegen) chacune dans leur propre plugin et ajouté les trois plugins à la dépendance de mon plugin éditeur.
Maintenant, si je tente de configurer un affichage OpenGL et mettent en place le GLEventListener je reçois toujours l'exception suivante dans le journal d'erreur Eclipse lors du chargement de la classe qui ne l'appelle OpenGL:Plugin Eclipse avec JOGL - ClassNotFoundException

java.lang.NoClassDefFoundError: com/jogamp/common/type/WriteCloneable 

(pile complète ci-dessous)
J'ai retrouvé cette classe et il est situé dans la dépendance de Gluegen et je peux même ouvrir la classe en utilisant le dialogue "Type ouvert" dans eclipse et encore eclipse ne semble pas pouvoir le trouver.
J'ai créé le projet plugin pour les bibliothèques en utilisant l'assistant "Plug-in from Existing JAR Archives" dans Eclipse et j'ai aussi revérifié les paquets exportés et ils contiennent le paquet qui ne peut pas être trouvé.
Maintenant, est-ce que quelqu'un sait ce que je fais mal?


stacktrace complète:

java.lang.NoClassDefFoundError: com/jogamp/common/type/WriteCloneable 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) 
    at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:601) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:567) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:490) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:478) 
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) 
    at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at fsme.editors.eff.editors.EffectViewer.<init>(EffectViewer.java:19) (my class) 
    at fsme.editors.eff.editors.EffectEditor.createViewer(EffectEditor.java:85) (my class) 
    at fsme.editors.eff.editors.EffectEditor.createPages(EffectEditor.java:62) (my class) 
    at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:348) 
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) 
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) 
    at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313) 
    at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) 
    at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270) 
    at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) 
    at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473) 
    at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1245) 
    at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1198) 
    at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1597) 
    at org.eclipse.ui.internal.PartStack.add(PartStack.java:493) 
    at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103) 
    at org.eclipse.ui.internal.PartStack.add(PartStack.java:479) 
    at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112) 
    at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63) 
    at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225) 
    at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213) 
    at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:808) 
    at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:707) 
    at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:666) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2942) 
    at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850) 
    at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842) 
    at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773) 
    at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2764) 
    at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651) 
    at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610) 
    at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:355) 
    at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:164) 
    at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:249) 
    at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228) 
    at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275) 
    at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:251) 
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:376) 
    at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:538) 
    at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48) 
    at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:866) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) 
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) 
    at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:864) 
    at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1152) 
    at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1256) 
    at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275) 
    at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:269) 
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:309) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 
Caused by: java.lang.ClassNotFoundException: com.jogamp.common.type.WriteCloneable 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 129 more 

Répondre

1

je en quelque sorte résolu mon problème. Je vais vous expliquer ce que le problème était:
J'ai découvert que chaque bibliothèque doit aussi avoir les bibliothèques qui dépendent de ses dépendances. Avec JOGL cela signifie que vous devez ajouter Nativewindow et Gluegen en tant que dépendance au plugin JOGL et vous devez également ajouter Gluegen en tant que dépendance à Nativewindow.

0

Êtes-vous construire un pot pour votre plugin Eclipse? Pouvez-vous regarder à l'intérieur de ce pot généré pour le
gluegen-rt.jar respectivement pour le com/jogamp/common/type/WriteCloneable.class?

Peut-être que vous pouvez construire le pot avec Maven et le pot ou plug-in d'assemblage pour inclure le gluegen-rt.jar

+0

Je viens d'exporter le plugin et je peux trouver à la fois gluegen-rt.jar et la classe dans le JAR du plug-in généré. – asarium

+0

Plugin Eclipse basé sur OSGi, non? Vous avez déjà fait un plugin Eclipse, ça marche? Je ne sais pas sur OSGi, mais peut-être y a-t-il des bibliothèques explicites exclues pour JOGL? – timaschew

+0

[Vous avez lu ceci?] (Http://stackoverflow.com/questions/1355259/eclipse-installing-plugin-with-dependencies) – timaschew

Questions connexes