Skip to main content
 首页 » 编程设计

eclipse-rcp中运行导出的基于 Xtend 的应用程序

2025年12月25日17虾米姐

我正在尝试使用 Xtend 生成并运行导出的 Eclipse RCP 应用程序。我使用的是带有 Java 1.8.0_181 和 Eclipse Photon 的 Windows 10。

以下步骤将在我可以创建的尽可能干净的环境中重现问题:

  • 使用 Oomph 高级模式安装 Eclipse Photon
    • 控制池的位置,这样它就不会被其他 Eclipse 使用无意中破坏。
    • 确保 Eclipse 使用 Java 8
  • 使用以下配置创建一个新的 Eclipse 工作区:
    • PDE 将运行时文件存储在工作区的单独部分
    • 已安装完整的 Xtext SDK
  • 创建一个具有以下属性的 Eclipse 插件项目:
    • 创建 RCP 应用程序
    • 使用 Eclipse E4 应用程序模板为项目提供种子
    • 包括可选生成的图形组件
    • 将生成的 Java 文件转换为 Xtend 并删除原始 Java 文件。
    • 加载生成的产品配置并从“概述”页面运行应用程序。这可以正常工作。
    • 使用产品配置页面中的导出向导导出项目。导出运行时未报告任何错误。
    • 从命令行启动导出的项目。它会以下列方式失败:
    • 应用程序启动,但 Xtend 代码提供的任何组件均未显示。
    • 这是运行日志:
 !SESSION 2018-07-26 13:03:49.115 ----------------------------------------------- 
eclipse.buildId=unknown 
java.version=1.8.0_181 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US 
Framework arguments:  -clearPersistedState 
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -clearPersistedState 
 
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-07-26 13:03:50.733 
!MESSAGE Unable to load class 'com.example.e4.rcp.wizard.handlers.QuitHandler' from bundle '2' 
!STACK 0 
java.lang.ClassNotFoundException: com.example.e4.rcp.wizard.handlers.QuitHandler cannot be found by com.example.e4.rcp.wizard_1.0.0.201807261104 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:609) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:103) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.processActiveHandler(HandlerProcessingAddon.java:143) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.postConstruct(HandlerProcessingAddon.java:53) 
    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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1005) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:137) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:412) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:345) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:214) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:108) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:51) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:282) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149) 
    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:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    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:656) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1498) 
 
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-07-26 13:03:50.740 
!MESSAGE Unable to load class 'com.example.e4.rcp.wizard.handlers.OpenHandler' from bundle '2' 
!STACK 0 
java.lang.ClassNotFoundException: com.example.e4.rcp.wizard.handlers.OpenHandler cannot be found by com.example.e4.rcp.wizard_1.0.0.201807261104 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:609) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:103) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.processActiveHandler(HandlerProcessingAddon.java:143) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.postConstruct(HandlerProcessingAddon.java:53) 
    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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1005) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:137) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:412) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:345) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:214) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:108) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:51) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:282) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149) 
    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:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    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:656) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1498) 
 
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-07-26 13:03:50.745 
!MESSAGE Unable to load class 'com.example.e4.rcp.wizard.handlers.SaveHandler' from bundle '2' 
!STACK 0 
java.lang.ClassNotFoundException: com.example.e4.rcp.wizard.handlers.SaveHandler cannot be found by com.example.e4.rcp.wizard_1.0.0.201807261104 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:609) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:103) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.processActiveHandler(HandlerProcessingAddon.java:143) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.postConstruct(HandlerProcessingAddon.java:53) 
    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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1005) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:137) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:412) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:345) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:214) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:108) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:51) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:282) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149) 
    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:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    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:656) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1498) 
 
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-07-26 13:03:50.750 
!MESSAGE Unable to load class 'com.example.e4.rcp.wizard.handlers.AboutHandler' from bundle '2' 
!STACK 0 
java.lang.ClassNotFoundException: com.example.e4.rcp.wizard.handlers.AboutHandler cannot be found by com.example.e4.rcp.wizard_1.0.0.201807261104 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:609) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:103) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.processActiveHandler(HandlerProcessingAddon.java:143) 
    at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon.postConstruct(HandlerProcessingAddon.java:53) 
    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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1005) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:137) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:412) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:345) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:214) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:108) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:51) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:282) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149) 
    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:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    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:656) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1498) 
 
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-07-26 13:03:51.148 
!MESSAGE Unable to load class 'com.example.e4.rcp.wizard.parts.SamplePart' from bundle '2' 
!STACK 0 
java.lang.ClassNotFoundException: com.example.e4.rcp.wizard.parts.SamplePart cannot be found by com.example.e4.rcp.wizard_1.0.0.201807261104 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:609) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:103) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) 
    at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) 
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1012) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:672) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:778) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:749) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:743) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:727) 
    at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1277) 
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.lambda$0(LazyStackRenderer.java:72) 
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40) 
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233) 
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4567) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:212) 
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36) 
    at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201) 
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:196) 
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) 
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) 
    at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135) 
    at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78) 
    at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39) 
    at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:52) 
    at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:60) 
    at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374) 
    at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:174) 
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:107) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:690) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:778) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:749) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:743) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:727) 
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:70) 
    at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:137) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:686) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:778) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:749) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:743) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:727) 
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:70) 
    at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:700) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:686) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:778) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:749) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:743) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:727) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1096) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059) 
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:162) 
    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:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    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:656) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1498) 
 
 
- As you can see none of the classes specified in the Xtend files could be found. It appears that the reason for this that the jar file containing the project artifacts (in the exported plugins directory) only contains the Xtend source code, not the Java .class files that I believe are needed. 

我已经添加了 Eclipse 生成的 build.properties 文件。我没碰过。

source.. = src/ 
output.. = bin/ 
bin.includes = plugin.xml,\ 
               META-INF/,\ 
               .,\ 
               icons/,\ 
               css/default.css,\ 
               Application.e4xmi 

我需要做什么才能为项目获取正确的导出 jar 文件?

请您参考如下方法:

您需要确保 xtend-gen 文件夹是源文件夹并在 build.properties 文件中列出。您甚至应该收到警告。

Before

及之后

source.. = src/,\ 
       xtend-gen/ 
output.. = bin/ 
bin.includes = META-INF/,\ 
... 
               . 

这里是添加 xtend-gen 作为源文件夹的 .classpath

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 
    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="xtend-gen"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath>