2014-02-11 2 views
0

заявление №1: я мог бы запустить приложение HelloWorld1 Qt-Jambi с графическим интерфейсом как автономным.как инициализировать QApllication внутри eclipse-rcp ([TeamCenter])

заявление №2: я могу запустить «HelloWorld2» teamcenter-plugin (через Eclipse), унаследованный ViewPart.

заявление №3: Попытка инициализации QApplication в плагин, как показано ниже

public class MyComView extends ViewPart 
{ 
    static 
    { 
     //try to init Qt-Jambi 
     // 
     System.out.println("QQ==before load qtjambi"); 
     // 
     QApplication qap1 = QApplication.instance(); 
     // 
     System.out.println("QQ==after get instance"); 
    } 
    //... 
} 

мой код достаточно хорошо компилируется и связаны между собой. , но я в java.lang.ClassNotFoundException с ниже StackTrace

!STACK 0 
java.lang.NoClassDefFoundError: com/trolltech/qt/gui/QApplication 
    at com.mycom.myview.views.MyComView.<clinit>(MyComView.java:89) 
    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:170) 
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:874) 
    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:267) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:263) 
    at org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:63) 
    at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:324) 
    at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:226) 
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) 
    at org.eclipse.ui.internal.Perspective.showView(Perspective.java:2228) 
    at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1067) 
    at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3816) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3813) 
    at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3789) 
    at com.cals.testplugin2.handlers.CallMyViewPart.execute(CallMyViewPart.java:26) 
    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:3880) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473) 
    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 com.teamcenter.rac.aifrcp.Application.runApplication(Unknown Source) 
    at com.teamcenter.rac.aifrcp.Application.start(Unknown Source) 
    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: com.trolltech.qt.gui.QApplication 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
    ... 59 more 

Что я сделал не так? И как правильно использовать qt-jambi в Eclipse-rcp, особенно в плагине TeamCenter?

ответ

1

java.lang.NoClassDefFoundError может быть выброшен по нескольким причинам. Код компилируется красиво, но выдает это исключение во время выполнения.

Вы запускаете его из командной строки в файле jar? - возможно, это не указано в манифесте файла jar.

Classpath ли вы запустить его в Eclipce проверить classpahts, или убедитесь, что класс должен быть найден в рабочей директории

Native LIBS ком/Trolltech/кварты/GUI/QApplication действительно зависит на родном языке. Удостоверьтесь, что у вас есть родные библиотеки qtjambi в вашем классе или рабочем каталоге.

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