我今天收到了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
答案 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)