无法启动eclipse“java.lang.LinkageError”

时间:2015-07-11 15:51:16

标签: eclipse

我很难说明我的Eclipse Kepler。 日志文件显示“无法运行处理器错误”:*

!SESSION 2015-07-11 17:27:36.405 -----------------------------------------------
eclipse.buildId=4.3.0.I20130605-2000
java.version=1.7.0_45
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR
Framework arguments:  -product org.eclipse.epp.package.standard.product -pluginCustomization D:\NVPACK\eclipse\nvpref.ini
Command-line arguments:  -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.standard.product -pluginCustomization D:\NVPACK\eclipse\nvpref.ini

!ENTRY org.eclipse.e4.ui.workbench 2 0 2015-07-11 17:27:41.577
!MESSAGE Could not run processor
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "org/eclipse/e4/core/contexts/ContextFunction"
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:220)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:107)
    at org.eclipse.e4.ui.internal.workbench.ModelAssembler.runProcessor(ModelAssembler.java:229)
    at org.eclipse.e4.ui.internal.workbench.ModelAssembler.processModel(ModelAssembler.java:88)
    at org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:219)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:395)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:238)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:581)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    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:354)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "org/eclipse/e4/core/contexts/ContextFunction"
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.getHandler(HandlerServiceImpl.java:53)
    at org.eclipse.ui.internal.commands.CommandPersistence.readCommandsFromRegistry(CommandPersistence.java:210)
    at org.eclipse.ui.internal.commands.CommandPersistence.reRead(CommandPersistence.java:505)
    at org.eclipse.ui.internal.CommandToModelProcessor.process(CommandToModelProcessor.java:74)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
    ... 26 more

这很烦人,因为我需要完成一项重要的工作。 我搜索了互联网,但似乎没有太多关于这个问题。

有什么想法吗? 谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

重新安装肯定会起作用,但对我来说这似乎是一个很大的障碍。

我发现为我工作的是找到其中一个org.eclipse.e4.core*包。他们很可能会在plugins目录中。然后逐个删除它们并重新尝试加载Eclipse。 Eclipse启动后,您可以根据需要重新安装特定插件。但至少你会保留所有的项目和其他设置。

答案 1 :(得分:1)

如果已安装Eclipse,请转到:“主目录” .p2 \ pool \ plugins 如果尚未安装,请转到:plugins目录

就我而言,我有org.eclipse.e4.core.contexts的三个版本: enter image description here

这三个软件包中的三个都在artifacts.xml上引用了,其中两个软件包在feature.xml中也引用了org.eclipse.e4.rcp(两个不同版本)软件包。

我只是删除了最旧的罐子,并保留了最新的org.eclipse.e4.core.contexts_1.8.100 Eclipse复活了= D

P.S。 :加分! Eclipse突然运行得更快

答案 2 :(得分:0)

我遇到了同样的问题。

感谢ilya1725,我发现/plugins/org.eclipse.e4.core.contexts_1.3.100.v20140407-1019导致了这一点。在删除之后,eclipse又重新启动而无需重新安装。