我正在尝试执行我最近从 eclipse Indigo 转移到 Photon 的 RCP 应用程序。更改/更新所需的库后,我设法运行该应用程序,将产品作为 Eclipse 应用程序(从 Eclipse IDE)启动,没有问题。
但是,当我将产品导出到本机可执行文件并启动它时,我收到了几个 InjectionException
!SESSION 2018-09-06 16:48:55.406 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_171
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=es_ES
Framework arguments: -clearPersistedState
Command-line arguments: -os win32 -ws win32 -arch x86 -clean -clearPersistedState
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-09-06 16:48:59.412
!MESSAGE Unable to create class 'org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon' from bundle '52'
!STACK 0
org.eclipse.e4.core.di.InjectionException: Unable to process "CommandProcessingAddon.broker": no actual value was found for the argument "IEventBroker".
at org.eclipse.e4.core.internal.di.InjectorImpl.reportUnresolvedArgument(InjectorImpl.java:489)
at org.eclipse.e4.core.internal.di.InjectorImpl.resolveRequestorArgs(InjectorImpl.java:480)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:126)
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)
等等。
我已经检查了启动配置上的插件列表和产品是否相同(使用“添加所需插件”选择并在启动配置上使用“验证插件”进行检查)。事实上,从产品页面按添加所需的插件似乎会遗漏启动窗口包含的一些插件(并且似乎需要以便应用程序在 eclipse 中启动)所以我手动添加了缺少的插件到产品,但仍然没有运气。我已经将最终的插件列表(来自启动配置的那个)上传到这个 pastebin,看看它是否与它有些相关。从产品自动生成的插件列表几乎相同,但包含的插件少了 7 个(然后我添加了上面说的)。
我是 Eclipse Photon 和所有这些注入机制的新手,但我很确定我的项目不会直接使用它(也许包含的一些新插件间接使用它?)。
我已经按照另一个答案中的建议使用了 -clean 和 -cleanPersistedState 参数来处理注入问题,但我仍然得到相同的结果。
关于如何解决这个问题或如何禁用注入/哪个插件导致注入被调用的任何线索?
DIEA
相关分类