今天启动Zend Studio报错了,其实这种事经常发生。 但大多数情况我还是用一种简单粗暴的方法: 方法1.把整个工作区间删除,然后又重新创建每个项目 当然如果这个工作区里面的项目少的话,这么搞没什么。如果多的话挺蛋疼的! 所以建议多设置几个工作区,每个工作区项目数不超过5个!有点跑题了。。。 方法2.删除下面路径里面的所有.snap文件 C:\Users\xxx用户\Zend\workspaces\xxx工作区\.metadata\.plugins\org.eclipse.core.resources\.projects\xxx项目名\删除里面所有的.snap文件 下面是Zend Studio报错内容, !SESSION 2014-08-08 09:20:30.229 ----------------------------------------------- eclipse.buildId=unknown java.version=1.7.0_45 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN Framework arguments: -showlocation Command-line arguments: -os win32 -ws win32 -arch x86 -showlocation This is a continuation of log file C:\Users\yearnfar\Zend\workspaces\xxxxx\.metadata\.bak_0.log Created Time: 2014-08-08 09:20:36.201 !ENTRY org.eclipse.osgi 4 0 2014-08-08 09:20:36.201 !MESSAGE Application error !STACK 1 java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:125) 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:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) at org.eclipse.equinox.launcher.Main.run(Main.java:1438) Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.core.resources (109). 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) ... 13 more Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.core.resources.ResourcesPlugin.start() of bundle org.eclipse.core.resources. 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) ... 22 more Caused by: java.lang.StackOverflowError at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) at org.eclipse.core.internal.localstore.SafeChunkyInputStream.find(SafeChunkyInputStream.java:98) ======================================================================= 是个 snapshot 快照,这是视图的状态缓存,因为一个视图被你关闭或 eclipse 重启之后,按理说刚启动后这个视图没有内容的,不是每个视图都可以在刚显示出来的时候调用 initialize 方法重新初始化的,因为有些视图不是根据当前的编辑器内容计算出来的而是根据其它动态的内容计算出来的,重启之后这些动态内容消失了,不可能再计算出完全不相同的状态来,因此 Eclipse 必须在一个视图关闭时必须缓存数据和状态。下次打开时直接从缓存中恢复,即加快了速度又保证的状态的一致性。用一个 Eclipse 创建一个简单的样例 View,我们可以让 SampleView 覆盖父类一个 saveState 方法,这个方法就是在 Eclipse 通知我们应该缓存状态的时候被调用的,类似的 JSF 也有这样的方法用来支持它的生命周期。 |
|