2015-02-03 6 views
2

В настоящее время я занимаюсь разработкой плагинов для Eclipse и должен был добавлять файлы jar недавно. Поэтому я создал папку с именами «ext jars» и поместил их в нее (также добавляя их в путь buildpath). Компиляция отлично, но после запуска она выдает исключение NoClassDefFoundError.NoClassDefFoundError Eclipse

Возможно, причина в том, что мой путь к классу установлен неправильно?

библиотека (файлы банку) используются: ini4j

мой текущий manifest.mf классам выглядит следующим образом:

... 
Bundle-ActivationPolicy: lazy 
Bundle-ClassPath: ., 
swing2swt.jar 

StackTrace:

org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: org/ini4j/Wini 
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62) 
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247) 
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229) 
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) 
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149) 
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499) 
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508) 
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) 
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:825) 
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:701) 
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$6(HandledContributionItem.java:685) 
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:613) 
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061) 
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761) 
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) 
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) 
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) 
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) 
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) 
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) 
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) 
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) 
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) 
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:648) 
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) 
at org.eclipse.equinox.launcher.Main.run(Main.java:1465) 
at org.eclipse.equinox.launcher.Main.main(Main.java:1438) 

код, который бросил исключение:

try { 
    Wini ini = new Wini(new File(pathToIni); 
    System.out.println(ini.get("child", "regID"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

ответ

0

Если банки находятся в папке в вашем проекте Bundle-ClassPath должен выглядеть примерно так:

Bundle-ClassPath: ., 
lib/jogg-0.0.7.jar, 
lib/jorbis-0.0.15.jar, 
lib/vorbisspi1.0.2.jar 

(здесь я имею три банки в «Lib» папку)

Ваш «build.properties» должен также включать в папку

+1

спасибо, что я мог принять каждый ответ от вас, потому что вы указали мне в правильном направлении. Я уже пытался добавить банки в свой класс, прежде чем задать свой вопрос здесь, но это не сработало. переименовал папку «ext jar» в «jar», и теперь она работает как шарм. кажется, что Eclipse не понравилось пространство –

0

Добавьте swing2swt.jar к вашему build.properties, так что будет экспортироваться, а

0

выглядит, как вы пропустите ini4j.jar. загрузите и добавьте его в свой путь к классам.

Смежные вопросы