您的位置:首页 > 编程语言 > Java开发

Eclipse 启动不了 一闪而过

2015-07-22 01:27 501 查看

问题描述】:

我的WTP版Eclipse,点击Eclipse图标启动,然后进度条进行一会,就一闪而过,消失了。即便你从新解压个新的eclipse也同样也是失败的。

【问题分析】:

命令行跟踪下启动log,Ctril+R然后cmd到Eclipse的安装目录,接着输入eclipse.exe启动,log如下:

java.lang.NullPointerException

at org.eclipse.core.internal.runtime.InternalPlatform.getLog(InternalPla

tform.java:354)

at org.eclipse.core.runtime.Plugin.getLog(Plugin.java:291)

at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:830)

at org.eclipse.ui.statushandlers.StatusManager.logError(StatusManager.java:285)

at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:200)

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$55.run(Workbench.java:2555)

at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

java.lang.NullPointerException

at org.eclipse.core.internal.runtime.InternalPlatform.getLog(InternalPla

tform.java:354)

at org.eclipse.core.runtime.Plugin.getLog(Plugin.java:291)

at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:830)

at org.eclipse.ui.statushandlers.StatusManager.logError(StatusManager.java:285)

at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:200)

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.internal.jobs.JobListeners.handleException(JobListeners.java:130)

at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.java:98)

at org.eclipse.core.internal.jobs.JobListeners.done(JobListeners.java:152)

at org.eclipse.core.internal.jobs.JobManager.endJob(JobManager.java:647)

at org.eclipse.core.internal.jobs.WorkerPool.endJob(WorkerPool.java:105)

at org.eclipse.core.internal.jobs.Worker.run(Worker.java:70)

java.lang.NullPointerException

at org.eclipse.core.internal.runtime.InternalPlatform.getLog(InternalPlatform.java:354)

at org.eclipse.core.runtime.Plugin.getLog(Plugin.java:291)

at org.eclipse.ui.internal.WorkbenchPlugin.log(WorkbenchPlugin.java:830)

at org.eclipse.ui.statushandlers.StatusManager.logError(StatusManager.java:285)

at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:200)

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.internal.jobs.JobManager.doShutdown(JobManager.java:606)

at org.eclipse.core.internal.jobs.JobManager.shutdown(JobManager.java:252)

at org.eclipse.core.internal.jobs.JobActivator.stop(JobActivator.java:55)

at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:771)

at java.security.AccessController.doPrivileged(Native Method)

at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:764)

at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:510)

at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:566)

at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1206)

at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:592)

at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)

at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)

at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284)

at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:692)

at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:600)

at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:400)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:200)

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)

Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.core.internal.refresh.RefreshJob





当然聪明的你到/.metadata/.log文件下也是可以看到错误信息的,摘录如下:

!ENTRY org.eclipse.ui 4 0 2014-11-14 12:20:05.531
!MESSAGE Error occurred during status handling
!STACK 0
java.lang.NullPointerException
at org.eclipse.ui.internal.statushandlers.StatusHandlerRegistry.(StatusHandlerRegistry.java:61)
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.internal.jobs.JobManager.doShutdown(JobManager.java:606)
at org.eclipse.core.internal.jobs.JobManager.shutdown(JobManager.java:252)
at org.eclipse.core.internal.jobs.JobActivator.stop(JobActivator.java:55)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:771)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:764)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:510)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:566)
at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1206)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:592)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284)
at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:692)
at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:600)
at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:200)
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)
!SESSION 2014-11-14 12:20:20.546 -----------------------------------------------
eclipse.buildId=4.3.2.M20140221-1700
java.version=1.7.0_17
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product

!ENTRY org.eclipse.core.resources 2 10035 2014-11-14 12:20:21.937
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

!ENTRY org.eclipse.core.jobs 2 2 2014-11-14 12:20:24.703
!MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.ui.internal.Workbench$55

【问题解决】:

log分析下应该是可以看出端倪,就是进程没被kill干净,导致平台数据状态不一致。

方法一:

删除,workspace目录下的.metadata,有后遗症的,有些eclipse插件会出现问题。(不推荐)

方法二:
删除,workspace目录下的
/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
假如还不行,顺便把这个/.metadata/.plugins/org.eclipse.core.resourses/.snap也删掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: