Eclipse无法加载工作空间。

28

我在使用Eclipse时遇到了卡顿,接着它就拒绝加载我的常用工作区文件夹。

以下是日志文件显示的内容。

我该如何重新加载这个文件夹?

!SESSION 2013-08-21 14:27:21.896 -----------------------------------------------
eclipse.buildId=M20130204-1200
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

This is a continuation of log file C:\Dev\workspace\.metadata\.bak_0.log
Created Time: 2013-08-21 14:27:29.774

!ENTRY org.eclipse.ui 4 0 2013-08-21 14:27:29.774
!MESSAGE Error occurred during status handling
!STACK 0
java.lang.NullPointerException
    at org.eclipse.ui.internal.statushandlers.StatusHandlerRegistry.<init>(StatusHandlerRegistry.java:72)
    at org.eclipse.ui.internal.statushandlers.StatusHandlerRegistry.getDefault(StatusHandlerRegistry.java:91)
    at org.eclipse.ui.statushandlers.StatusManager.getStatusHandler(StatusManager.java:135)
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189)
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231)
    at org.eclipse.ui.statushandlers.StatusManager$StatusManagerLogListener.logging(StatusManager.java:305)
    at org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(RuntimeLog.java:160)
    at org.eclipse.core.internal.runtime.PlatformLogWriter.logged(PlatformLogWriter.java:100)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:86)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:205)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:178)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
    at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
    at org.eclipse.core.internal.runtime.PlatformLogWriter.logging(PlatformLogWriter.java:43)
    at org.eclipse.core.internal.runtime.RuntimeLog.log(RuntimeLog.java:96)
    at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:71)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
    at org.eclipse.ui.internal.Workbench$54.run(Workbench.java:2412)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

!ENTRY org.eclipse.ui 4 4 2013-08-21 14:27:29.789
!MESSAGE Unhandled Exception

!ENTRY org.eclipse.ui 4 4 2013-08-21 14:27:29.789
!MESSAGE Unhandled Exception

!ENTRY org.eclipse.ui 4 0 2013-08-21 14:27:29.789
!MESSAGE Error occurred during status handling
!STACK 0
java.lang.NullPointerException
    at org.eclipse.ui.internal.statushandlers.StatusHandlerRegistry.<init>(StatusHandlerRegistry.java:72)
    at org.eclipse.ui.internal.statushandlers.StatusHandlerRegistry.getDefault(StatusHandlerRegistry.java:91)
    at org.eclipse.ui.statushandlers.StatusManager.getStatusHandler(StatusManager.java:135)
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189)
    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231)
    at org.eclipse.ui.statushandlers.StatusManager$StatusManagerLogListener.logging(StatusManager.java:305)
    at org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(RuntimeLog.java:160)
    at org.eclipse.core.internal.runtime.PlatformLogWriter.logged(PlatformLogWriter.java:100)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:86)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:205)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:178)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
    at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
    at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
    at org.eclipse.core.internal.runtime.Log.log(Log.java:62)
    at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:809)
    at org.eclipse.ui.internal.EarlyStartupRunnable.handleException(EarlyStartupRunnable.java:81)
    at org.eclipse.core.runtime.SafeRunner.handleException(SafeRunner.java:75)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:44)
    at org.eclipse.ui.internal.Workbench$54.run(Workbench.java:2412)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

!ENTRY org.eclipse.mylyn.tasks.ui 4 0 2013-08-21 14:27:29.789
!MESSAGE Unable to execute early startup code for an extension
!STACK 1
org.eclipse.core.runtime.CoreException: Plug-in org.eclipse.mylyn.tasks.ui was unable to load class org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin$TasksUiStartup.
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
    at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:273)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:269)
    at org.eclipse.ui.internal.EarlyStartupRunnable.getExecutableExtension(EarlyStartupRunnable.java:117)
    at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.Workbench$54.run(Workbench.java:2412)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.mylyn.tasks.ui (288).
    at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
    at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
    ... 11 more
Caused by: org.osgi.framework.BundleException: The activator org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin for bundle org.eclipse.mylyn.tasks.ui is invalid
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:172)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
    at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
    at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
    ... 23 more
Caused by: java.lang.NoClassDefFoundError: org/eclipse/mylyn/monitor/ui/IUserAttentionListener
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:167)
    ... 29 more
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.mylyn.monitor.ui (281).
    at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
    at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 34 more
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start() of bundle org.eclipse.mylyn.monitor.ui.
    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.BundleHost.startWorker(BundleHost.java:381)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
    at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
    at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
    ... 43 more
Caused by: org.eclipse.swt.SWTException: Device is disposed
    at org.eclipse.swt.SWT.error(SWT.java:4361)
    at org.eclipse.swt.SWT.error(SWT.java:4276)
    at org.eclipse.swt.SWT.error(SWT.java:4247)
    at org.eclipse.swt.widgets.Display.error(Display.java:1258)
    at org.eclipse.swt.widgets.Display.asyncExec(Display.java:709)
    at org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start(MonitorUiPlugin.java:145)
    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)
    ... 49 more

通常会弹出一个带有简短信息的弹窗,它说了什么? - baam
请查看 .metadata/.log 文件。就是这样。 - Lena Bru
1
删除.metadata文件夹。这是eclipse存储工作区信息的地方。它将重置所有工作区设置,但不会影响项目。 - Georgian
我按照这个答案的方法,完美地解决了问题。这个解决方案可以保持工作区配置不变。 - Pedro Pisa
3个回答

64

我遇到了相同的问题。删除 .metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi 文件可以解决问题,但不确定根本原因是什么。

或者

"plugins"文件夹中的内容移动到其他文件夹并重新启动Eclipse。Eclipse会在重启后添加所有这些插件。然后用已复制的文件夹替换新文件夹。


4
删除元数据强制我重新安装所有插件并重新设置快捷键 - 然而,将元数据移动到外部文件夹,打开文件夹,然后恢复元数据就解决了问题! - Lena Bru
我应该有时候读一下评论 - 上次我的工作区崩溃时,我发布了这条评论,现在我已经读过它了,但我错过了是谁发布的,如果我能再次点赞你的回答,我会的,感谢你的帮助! - Lena Bru
4
我应该去睡觉了,我花了几分钟才找出“.metadata”目录就在工作区目录中。 - Jaroslav Záruba
1
第一种解决方案对我来说完美地运作了。它只是将Windows等恢复到了原始状态。 - Magnilex
在我的情况下,问题是我试图使用 Eclipse 插件将一个非常大的文件与另一个文件进行比较。我怀疑这是因为 Eclipse 无法执行如此重的过程并且被卡住了。 - ChandrasekarG
第一个解决方案让我节省了很多时间。非常感谢! - eternay

12

对我而言,删除.snap文件起了作用:

rm WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.snap


1
删除整个.metadata目录是我唯一起作用的方法。 - Michael P

6

仅提供Fredrik在帖子中提供的解决方案链接:eclipse无法启动但没有显示错误

"尝试打开一个新工作区。如果已经设置为使用默认工作区,请转到\configuration.settings\org.eclipse.ui.ide.prefs并将SHOW_WORKSPACE_SELECTION_DIALOG设置为true。

尝试删除/.metadata/.plugins/org.eclipse.core.resources/.snap文件。

根据评论建议:如果使用Eclipse 4,则可能还需要删除文件.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi。


上面的答案对我没用,但这个修复了。 - PLPeeters
即使是我删除了文件25.snap,问题也得到了解决。 - Upen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接