我想将带有 SWT 的 Eclipse RCP 4 应用程序迁移到带有 JavaFX 的 Eclipse RCP 4 应用程序。我已按照本教程进行操作。在我更新了所有依赖项后,启动时抛出了以下错误。
Exception in Application start method
Exception in Application stop method
!ENTRY org.eclipse.equinox.app 4 0 2015-07-16 13:39:47.131
!MESSAGE Exception in Application start method
!STACK 0
java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$8/5919297.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:115)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:345)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:264)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.createWidget(BaseRenderer.java:186)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.createWidget(BaseRenderer.java:1)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createWidget(PartRenderingEngine.java:246)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:211)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:311)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.engineCreateWidget(BaseRenderer.java:603)
at org.eclipse.fx.ui.workbench.renderers.base.BaseMenuRenderer.doProcessContent(BaseMenuRenderer.java:198)
at org.eclipse.fx.ui.workbench.renderers.base.BaseMenuRenderer.doProcessContent(BaseMenuRenderer.java:1)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.processContent(BaseRenderer.java:697)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:214)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:311)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.engineCreateWidget(BaseRenderer.java:603)
at org.eclipse.fx.ui.workbench.renderers.base.BaseMenuBarRenderer.doProcessContent(BaseMenuBarRenderer.java:52)
at org.eclipse.fx.ui.workbench.renderers.base.BaseMenuBarRenderer.doProcessContent(BaseMenuBarRenderer.java:1)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.processContent(BaseRenderer.java:697)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:214)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:311)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.engineCreateWidget(BaseRenderer.java:603)
at org.eclipse.fx.ui.workbench.renderers.base.BaseWindowRenderer.doProcessContent(BaseWindowRenderer.java:350)
at org.eclipse.fx.ui.workbench.renderers.base.BaseWindowRenderer.doProcessContent(BaseWindowRenderer.java:1)
at org.eclipse.fx.ui.workbench.renderers.base.BaseRenderer.processContent(BaseRenderer.java:697)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:214)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.createGui(PartRenderingEngine.java:311)
at org.eclipse.fx.ui.workbench.fx.PartRenderingEngine.run(PartRenderingEngine.java:434)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.fx.ui.workbench.fx.E4Application$1.lambda$0(E4Application.java:181)
at org.eclipse.fx.ui.workbench.fx.E4Application$1$$Lambda$63/32057162.run(Unknown Source)
at org.eclipse.fx.ui.workbench.fx.internal.UISynchronizeImpl.syncExec(UISynchronizeImpl.java:88)
at org.eclipse.fx.ui.workbench.fx.E4Application$1.run(E4Application.java:170)
at org.eclipse.fx.ui.workbench.fx.E4Application.jfxStart(E4Application.java:193)
at org.eclipse.fx.ui.workbench.fx.DefaultJFXApp.start(DefaultJFXApp.java:57)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$159(Unknown Source)
at com.sun.javafx.application.LauncherImpl$$Lambda$58/21052856.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$172(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$54/8916641.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$170(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$56/17487268.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(Unknown Source)
at com.sun.javafx.application.PlatformImpl$$Lambda$55/776696.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$145(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$44/27884882.run(Unknown Source)
... 1 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at org.eclipse.fx.core.SimpleURI.parseURI(SimpleURI.java:71)
at org.eclipse.fx.core.SimpleURI.<init>(SimpleURI.java:42)
at org.eclipse.fx.core.URI.create(URI.java:69)
at org.eclipse.fx.ui.workbench.fx.internal.GraphicsLoaderImpl.replaceDynamicValues(GraphicsLoaderImpl.java:144)
at org.eclipse.fx.ui.workbench.fx.internal.GraphicsLoaderImpl.getGraphicsNode(GraphicsLoaderImpl.java:120)
at org.eclipse.fx.ui.workbench.renderers.fx.DefMenuItemRenderer$MenuItemImpl.setIconURI(DefMenuItemRenderer.java:186)
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:56)
... 49 more