# NoClassDefFoundError



## Ralf1007 (6. Sep 2006)

Hi.

Ich habe diese Frage auch schon in anderen Foren gestellt aber keiner konnte mir helfen. Da ich dieses Forum bei Google unter dem Begriff "Java Forum" ganz oben gefunden habe, denke ich dass ihr meine letzte Hoffnung seid.

Der oben genannte Fehler kommt bei mir mit folgender Message:


> Problems occurred when invoking code from plug-in: "org.eclipse.jface".


und folgender Fehlermeldung:

```
java.lang.NoClassDefFoundError: de/tu_bs/coobra_plugin/CoObRAPersistentObject
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:160)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:498)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:468)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:427)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:410)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:339)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:391)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:352)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:160)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:498)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:468)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:427)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:410)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:339)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:391)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:352)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at servicespecificator.editors.servicedefinition.ui.PaletteFactory.createObjectComponentsCreator(PaletteFactory.java:69)
at servicespecificator.editors.servicedefinition.ui.PaletteFactory.createCategories(PaletteFactory.java:34)
at servicespecificator.editors.servicedefinition.ui.PaletteFactory.createPalette(PaletteFactory.java:25)
at servicespecificator.editors.servicedefinition.ui.ServiceDefinitionEditor.<init>(ServiceDefinitionEditor.java:51)
at servicespecificator.editors.ServiceEditor.<init>(ServiceEditor.java:30)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:157)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:759)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:242)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:238)
at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:231)
at org.eclipse.ui.internal.EditorManager.createPart(EditorManager.java:908)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:549)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:372)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:290)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1144)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1097)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1311)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111)
at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:60)
at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217)
at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207)
at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:819)
at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:718)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:679)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2586)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2521)
at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2513)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2498)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2493)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2478)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:388)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:350)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:275)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:139)
at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open(OpenActionUtil.java:49)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:190)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:174)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:267)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:243)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:306)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:651)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:817)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:843)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:815)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1069)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1168)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:249)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:243)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:283)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
```

Ich denke, dass hier ist das Wichtigste:
	
	
	
	





```
java.lang.NoClassDefFoundError: de/tu_bs/coobra_plugin/CoObRAPersistentObject
```

Die Klasse CoObRAPersistentObject liegt in einem externen Archiv, welches im Buildpath steht und sogar im Classpath (auch wenn das wahrscheinlich keine Rolle spielt) nochmal extra eingetragen ist.
Ich habe schon stundenlang gegoogelt und nachgedacht aber mir fällt nichts mehr ein. Ich habe einen Classpath-Viewer für Eclipse gefunden, der einem sogar anzeigt welche Klassen mit Hilfe des classpaths nicht gefunden werden können bzw. welche ganz und gar fehlen. Das ist aber hier weder bei dieser Klasse, noch beim Package org.eclipse.jface der Fall.

Sollten noch Unklarheiten bestehen, bitte fragt nach. Mir ist es sehr wichtig, dass dieses Problem gelöst wird. Ich arbeite mit Eclipse3.2 Update6.


----------



## thE_29 (6. Sep 2006)

Gehts unter Eclipse auch nicht starten?!

Du hast ein Jar File was diese externe package Struktur beinhaltet?


----------



## Ralf1007 (6. Sep 2006)

Du musst Dir das so vorstellen, dass ich beim Starten eine neue Eclipse-Instanz öffne und das Programm dann laufen sollte. Leider kommt dann dieser Fehler.

Und ja, ich habe eine jar File, die diese Packagestruktur beinhaltet.


----------



## thE_29 (6. Sep 2006)

Kann man es builden?

Oder geht nicht mal das?


----------



## Ralf1007 (6. Sep 2006)

Naja, zumindest die Eclipseinstanz wird geöffnet und dann erstelle ich darin ein neues Projekt, anschliessend eine neue Datei. Dieser Datei gebe ich eine spezielle Endung, damit wenn ich sie anklicke sich ein Editor öffnet. Nur leider tut er das nicht denn dann kommt der Fehler.


----------



## thE_29 (6. Sep 2006)

Eclipse selber liefert also diesen Fehler?


----------



## Ralf1007 (6. Sep 2006)

ja


----------



## SnooP (6. Sep 2006)

Das ganze ist also ein Eclipse-Plugin? ... ist das entsprechende package als Extension in der plugin.xml enthalten? oder unter dependencies? da würde ich nochmal nen bisschen rumspielen... hatte da auch schon diverse probleme.


----------



## Ralf1007 (6. Sep 2006)

Das Package steht weder in den Dependencies noch ist es in Extensions eingetragen. Es ist auch nicht wirklich ein Eclipse-PlugIn sondern wirklich extern. Es wird mir nicht einmal die Möglichkeit geboten es in die Dependencies oder die Extensions einzutragen.
Die jar-File, die das Package enthält liegt einfach im Projektverzeichnis unter libs/ und wird in den Buildpath eingebunden als externes Archiv.

Ist daran was verkehrt?


----------



## Wildcard (6. Sep 2006)

verstehe ich das jetzt richtig? Du willst ein externes PlugIn in einem Runtime-Workspace verwenden?
Wenn das so ist, dann musst du entweder das jar ins Plugins verzeichnis werfen, und es in deiner launch-configuration aktivieren, oder ein neues Pluginprojekt machen, und das jar dorthin entpacken.


----------



## Ralf1007 (6. Sep 2006)

Wildcard hat gesagt.:
			
		

> verstehe ich das jetzt richtig? Du willst ein externes PlugIn in einem Runtime-Workspace verwenden?
> Wenn das so ist, dann musst du entweder das jar ins Plugins verzeichnis werfen, und es in deiner launch-configuration aktivieren, oder ein neues Pluginprojekt machen, und das jar dorthin entpacken.



Das klingt auf jeden Fall schonmal gut. Ich bin noch einigermaßen neu aber ich versuche das mal zusammenzufassen:

Ich habe ein PlugIn-Projekt erstellt mit einem Multi-Page-Editor. Danach dann programmiert, die ganzen PlugIn-Dependencies eingebunden und zusätzlich noch externe jars. Eine davon ist jetzt die, die mir Schwierigkeiten bereitet. Und um deine Frage zu beantworten: Ja ich möchte in dem runtime-Workspace diese Jar verwenden.

Du hast mir jetzt 2 Möglichkeiten geboten:

1. Jar ins plugins-Verzeichnis von Eclipse legen und dann in der Runtime-Configuration angeben. Richtig? Problem dabei ist, dass die Jar genau dort liegt aber in der Konfiguration nicht als benötigtes PlugIn angegeben werden kann. Warum dem so ist, weiß ich nicht, weil eigentlich ist es ja eine jar wie jede andere.

2. neues PlugIn-Projekt machen und dorthin entpacken. So gesehen habe ich ja ein neues PlugIn-Projekt und ich denke das wäre jetzt auch schon die Lösung des Problems aber ich weiß leider aufgrund meiner Unerfahrenheit nicht, wohin in mein Projekt ich diese Jar entpacken soll  :bahnhof:

Könntest du mir das bitte noch verraten? Die Jar liegt wie gesagt in einem Verzeichnis im Projekt (lib/) aber eben nur als Jar und nicht entpackt. wohin muss ich die entpacken?

Danke auf jeden Fall schonmal, das hilft sehr.


----------



## Wildcard (6. Sep 2006)

> 1. Jar ins plugins-Verzeichnis von Eclipse legen und dann in der Runtime-Configuration angeben. Richtig? Problem dabei ist, dass die Jar genau dort liegt aber in der Konfiguration nicht als benötigtes PlugIn angegeben werden kann. Warum dem so ist, weiß ich nicht, weil eigentlich ist es ja eine jar wie jede andere.



In der launch-configuration solltest du im Tab 'plugins' wenn du 'chose plugins and fragments to launch from the list' eine Liste aller in Eclipse vorhandenen Plugins bekommen, und musst diejenigen auswählen die in der Runtime Instanz aktiviert werden.
Sollte dein externes Plugin nicht in dieser Liste auftauchen, so ist es auch nicht in deinem orginal Eclipse installiert.
Grund hiefür kann zum Beispiel Inkompatibilität sein. In jedem Fall solltest du dann unter Help -> Manage Configuration nachsehen was los ist.


> 2. neues PlugIn-Projekt machen und dorthin entpacken. So gesehen habe ich ja ein neues PlugIn-Projekt und ich denke das wäre jetzt auch schon die Lösung des Problems aber ich weiß leider aufgrund meiner Unerfahrenheit nicht, wohin in mein Projekt ich diese Jar entpacken soll bahnhof.gif


Nein, das sollte dann ein neues Projekt nur für das externe PlugIn sein. Einfach die jar in das Verzeichnis entpacken und bei deinem eigenen Plugin als Plugin-Dependency eintragen.


Übrigens: Versuch gar nicht erst das externe plugin in den classpath deines plugins aufzunehmen, das funktioniert so nicht  :wink: 
Ist eben manchmal gar nicht so einfach mit diesen Plugins, da es leider etwas anders funktioniert als die normalen jars...


----------



## Ralf1007 (6. Sep 2006)

Gut, ich glaube ich habe es...das ist gar kein PlugIn  Weil über ManageConfiguration könnte ich diese Jar gar nicht einbinden. Und ich glaube auch mit Inkompatibilität hat das nichts zu tun.

Ich glaube das ist einfach eine Jar, wie z.B. die jre-Systemlibrary. Und da wird was nicht von gefunden. Hast du dafür noch eine Idee?

Ich probiers trotzdem mal mit dem neuen Projekt.

EDIT: Mit Hilfe eines neuen PlugIn-Projektes funktioniert es nicht. Die Launch-Configuration nimmt es zwar allerdings bringt das nichts.

Also gehe ich mal davon aus, dass es sich bei der Jar um kein PlugIn handelt. Wie nun weiter? Mein Kopf raucht, ich habe schon so vieles probiert.


----------



## Ralf1007 (6. Sep 2006)

Jaaaaaaaaaaaaaaaa!

Kommando zurück!

Wenn ich dieses Projekt als Dependencie angebe klappt es! Kommen zwar immer noch Fehler aber die haben damit nichts mehr zu tun.

Tausend Dank! Danke danke danke. Solltest du mal nach Aachen oder Halle/S. kommen, ich lad dich auf ein Bier ein.

MfG und in allergrößter Dankbarkeit, 

Ralf.


----------



## Wildcard (6. Sep 2006)

Freut mich das ich helfen konnte...


> Solltest du mal nach Aachen oder Halle/S. kommen, ich lad dich auf ein Bier ein.


Das ANgebot nehme ich gerne in Anspruch wenn ich mal wieder auf dem Weg nach Holland bin  :wink:


----------

