Announcement

Collapse
No announcement yet.

ClassNotFoundException bei Eclipse Plugin Projekt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ClassNotFoundException bei Eclipse Plugin Projekt

    Hallo,

    ich arbeite nun an einem bestehenden Pluginprojekt.

    Es ist ein stink normales Plugin, welches 3 Menü-items in Eclpse integriert und bei deren Click diverse Operationen passieren.

    Meine Aufgabe ist es nun eine Funktion zu erweitern. Ich benötige für die Umsetzung der Funktionen eine bestehende API, welche ich als jar file, eben wie in einem normalen Java-Projekt, in das Projekt kopiert habe und zum BuildPath hinzugefügt habe...

    Soweit so gut, bisher scheint es keine Fehler zu geben, die Syntax-Unterstützung kenn die Klassen der jar File und ich kann losprogrammieren, ohne das Probleme angezeigt werden.

    Wenn ich die plugin.xml ausführe und das geänderte Menü-Item per Mausklick den Code der API ausführen soll, fliegen Exceptions:

    Code:
    java.lang.NoClassDefFoundError: org/jamesii/core/util/ITime    
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
    	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
    	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
    	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:457)
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
    	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at de.tud.inf.ai.topcased.ui.commands.RunSimulation.execute(RunSimulation.java:89)
    	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
    	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
    	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
    	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
    	at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:770)
    	at org.eclipse.ui.menus.CommandContributionItem.access$10(CommandContributionItem.java:756)
    	at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:746)
    	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
    	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
    	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
    	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
    	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
    	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
    	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
    	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
    	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
    	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
    	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:368)
    	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    	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.equinox.launcher.Main.invokeFramework(Main.java:559)
    	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
    	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
    	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
    Caused by: java.lang.ClassNotFoundException: org.jamesii.core.util.ITime
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
    	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	... 49 more
    "ITime", eine Schnittstelle aus der verwendeten API, müsste er eigentlich finden. Die ist direkt in der verwendeten API enthalten. Was mache ich hier falsch?

    Ich nehme an, dass ich der plugin.xml noch etwas mitteilen muss bzgl der eingebundenen jar-files. Aber wie weiß ich nicht.


    Ich bitte um Hilfe.

    Danke schonmal

  • #2
    Das JAR was du nutzt ist eine Dependency deines PlugIn. Öffne deine Run-Konfiguration für das PlugIn und füge es unter requierd JARs hinzu. Weiterhin sollte es im PlugIn-Editor unter in Dependency-Tab eingefügt werden
    Zuletzt editiert von Christian Marquardt; 13.11.2012, 19:24.
    Christian

    Comment

    Working...
    X