2011-07-14 12 views
0

JOGLを使用してエディタの内容を表示するEclipseプラグインを作成しようとしています。
必要なライブラリ(JOGL、Nativewindow、Gluegen)をそれぞれ独自のプラグインにパッケージ化し、3つすべてのプラグインをエディタプラグインの依存関係に追加しました。私はセットアップにOpenGLのディスプレイを試してみて、GLEventListenerを実装する場合
は今、私はいつものOpenGL呼び出しを行い、クラスのロード時にEclipseのエラーログに以下の例外を取得:JOGLでEclipseプラグイン - ClassNotFoundException

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

(以下フルスタック)
私はそのクラスを追跡し、それはGluegenの依存関係の中に位置しています。私は、Eclipseの "Open type"ダイアログを使ってクラスを開くことさえできますが、まだEclipseはそれを見つけることができません。
Eclipseの中の「既存のJARアーカイブからのプラグイン」ウィザードを使用してライブラリ用のプラグインプロジェクトを作成しました。また、エクスポートされたパッケージを再確認しましたが、見つからないパッケージも含まれています。
今、誰かが間違っていることを知っていますか?


のフルスタックトレース:

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 

答えて

1

を含めるようにMavenを持つ瓶と瓶またはアセンブリのプラグインを構築することができます私は何とか自分の問題を解決しました。問題の内容を説明します:
私は、すべてのライブラリに依存するライブラリが必要であることを発見しました。 JOGLを使用すると、NativewindowとGluegenの両方をJOGLプラグインへの依存として追加する必要があります。また、Nativewindowへの依存としてGluegenを追加する必要があります。

0

あなたはEclipseのプラグインのためのjarファイルを構築していますか? com/jogamp/common/type/WriteCloneable.classの場合は、それぞれ
gluegen-rt.jarの生成されたjarファイルを参照できますか?

おそらく、あなたはgluegen-rt.jarの

+0

プラグインをエクスポートしたばかりで、生成されたプラグインJAR内でgluegen-rt.jarとクラスの両方を見つけることができます。 – asarium

+0

EclipseプラグインはOSGiベースですすでにEclipseプラグインを作っていますね。 OSGiについてはわかりませんが、JOGLの明示的なライブラリ除外があるのでしょうか? – timaschew

+0

[あなたはこれを読む?](http://stackoverflow.com/questions/1355259/eclipse-installing-plugin-with-dependencies) – timaschew

関連する問題