由于异常加载系统包,Eclipse(STS)在更新后无法启动

时间:2014-04-07 14:48:22

标签: eclipse sts-springsourcetoolsuite

我今天收到了Eclipse的更新(STS版本3.3.0)。更新需要eclipse重新启动,但Eclipse仍然无法启动。检查GUI的错误消息中提到的日志文件后,我发现了这个:

!ENTRY org.eclipse.osgi 4 0 2014-04-07 10:31:11.926
!MESSAGE Startup error
!STACK 1
java.lang.RuntimeException: Exception in org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start() of bundle org.eclipse.osgi.
    at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume(InternalSystemBundle.java:233)
    at org.eclipse.osgi.framework.internal.core.Framework.launch(Framework.java:656)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:275)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
    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:601)
    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)
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start() of bundle org.eclipse.osgi.
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
    at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.resume(InternalSystemBundle.java:225)
    ... 10 more
Caused by: java.lang.IllegalStateException: The System Bundle could not be resolved: Another singleton version selected: org.eclipse.osgi_3.9.1.v20140110-1610
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.checkSystemState(BaseStorage.java:827)
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.getStateManager(BaseStorage.java:800)
    at org.eclipse.osgi.baseadaptor.BaseAdaptor.getState(BaseAdaptor.java:387)
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.frameworkStart(BaseStorage.java:923)
    at org.eclipse.osgi.baseadaptor.BaseAdaptor.frameworkStart(BaseAdaptor.java:250)
    at org.eclipse.osgi.framework.internal.core.SystemBundleActivator.start(SystemBundleActivator.java:60)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
    ... 12 more

3 个答案:

答案 0 :(得分:1)

经过几个小时的挖掘后,我发现我的插件目录中有多个org.eclipse.osgi_XXXXXXXXXXXXXXX.jar个文件。我删除了org.eclipse.osgi_3.9.1.v20130814-1242.jar(之前是我最近的那个),并且保留了org.eclipse.osgi_3.9.1.v20140110-1610.jar,因为版本号与堆栈跟踪中提到的版本号相匹配。之后,Eclipse似乎正常启动。

答案 1 :(得分:0)

经过更多研究后,使用eclipse.exe选项运行-clean似乎也可能会解决问题。但是,我再也无法重现这个问题来测试这个理论。

答案 2 :(得分:0)

我使用eclipse-inst-win64.exe安装了Eclipse,这解决了我的问题:

enter image description here