ADT - Bundle 中的Eclipse 无法启动, 卡在loading workbench 界面无响应

来源:互联网 发布:淘宝网返利如何领取 编辑:程序博客网 时间:2024/04/27 20:15

        一, 启动Eclipse 直接卡在启动页面不动, 在进程里面看, 发现一直无响应, 每次启动如此, 具体如下图: 

                   

        进程显示为无响应的图就不上了, 因为在写博客的时候此问题已经被解决了, 没法截图. 上图是启动eclipse后一直卡着的现象. 接着就是找问题, 解决问题, 在解决问题前, 请先把eclipse的工作空间(workplace)备份一下, 因为我在解决问题后, 工作空间有一个项目(testtestest)里面的代码全部弄丢了, 而且这过程中, 原先工作空间的配置文件(.metadata 文件夹)都还有用. 下面就说我具体解决问题的步骤:

1, 先是查资料, 网上一共讲了两个步骤, 但综合起来, 其实就是一个步骤. 把  eclipse 工作空间 D:\workspace\.metadata\.plugins 目录下的 org.eclipse.ui.workbench 和 org.eclipse.ui.workbench.texteditor 这两个文件删掉就可以解决问题, 接着照做, 发现eclipse仍然无法打开. 说到这里, 那么就要回到网上解决方案的第一步, 具体做法是, 先把工作空间的 .metadata 文件夹进行备份,  然后把这个文件夹删除, 接着重新打开, eclipse能够打开, 但是发现原来工作空间的配置和项目都消失了,而显示的是欢迎界面, 并且这个时候在eclipse的工作空间中生成一个新的 .metadata文件夹,  用这个新的 .metadata 文件 和 原先备份的 .meatadata文件进行比较, 发现原先的 .metadata 文件夹比生成新生成的文件夹多了很多文件,  想一个一个的恢复, 因为文件太多, 不知道哪些能恢复, 哪些不能恢复, 而且担心恢复后会有其它的问题, 于是又将原先的 .metadata文件替换回工作空间, 替换回去后, 又发现eclipse一直卡在上图界面, 这个界面叫 loading workbench, 即加载工作空间. 既然是这样, 于是乎, 原资料作者想到这个可能和 wokrbench 插件可能有关, 接着就 在  D:\workspace\.metadata\.plugins 目录下找到 org.eclipse.ui.workbench 和 org.eclipse.ui.workbench.texteditor 这两个文件夹, 然后把它们删掉, 再启动eclipse问题解决.  这就是原作者解决的办法. 但是我这样并没有解决我的问题. 这里记录下来原作者解决的思路, 目的有两个, 一是, 原作者用这种方法能够解决异常, 而我不能解决, 说明造成这种异常至少有两种原因, 后续遇到, 可以用这种方法解决, 不行再用接下来的方法解决. 二是觉得作者解决问题的思路值得学习. 

2, 既然网上查的资料不管用, 那么就只好自己想办法了. 虽然网上的资料没解决问题, 但是也给我找问题提供了门路. 我的做法是, 把原先有问题的  .metadata 目录 和 新生成的 .metadata 目录进行比较. 因为之前已经定位到了  .metadata\.plugins 这个目录下面, 所以 .metadata目录下的几个其它文件我就没有进行比较了, 主要是处理 .metadata\.plugins这个目录下的文件.  因为原 .meatadata\.plugins 目录下的文件 比 新生成的 .metadata\.plugins 目录文件要多, 而问题肯定就处在这些多出来的文件, 于是我就把原 .metadata\.plugins 下的文件一个个的复制到新的 .metadata\.plugins 目录下. 最终发现问题其实是在 .meata\.plugins 目录下的 org.eclipse.core.resources 这个文件夹. 而这个文件夹里面又有许多文件夹和文件, 接着有和新的 .metadata\.plugins 下面的 org.eclipse.core.resources  这个文件夹进行比较, 这两个文件夹比较, 发现原先工作空间下的 org.eclipse.core.resources 文件夹下面的各个文件夹中的文件要比 新的工作空间中的 org.eclipse.core.resources 文件夹下的文件多, 于是又是把原文件中多出来的文件一个个添加到新文件中, 最终问题定位到了 org.eclipse.core.resources 目录下的 .snap 文件.  因为新的 org.eclipse.core.resources文件夹下面没有 .snap 文件, 一旦我把原先的 org.eclipse.core.resources 目录下的 .snap 文件拷贝到 新的 org.eclipse.core.resources文件夹下面, eclipse就又是一直卡在loading workbench 那里. 既然是多了 .snap 文件. 那么接下来就删这个文件.

3, 因为是多了 .snap 文件, 所以就需要把它删除掉试试. 可是在我删掉后, 我发现依然会停留在loading workbench界面. 不过这次有点不一样, 我们都知道, 打开eclipse 的时候, 加载工作空间时, 有个进度条,  这个时候进度条有变化了, 走了一点, 如下图, 

        4, 在删掉后 .snap 文件后 还是有问题, 那么问题在哪里呢? 难道又要一个一个文件去复制替换, 那就太多了. 于是决定先在网上搜搜 .snap 这个文件, 看看有没有相关资料, 搜 .snap 关键字没搜到什么有用的信息, 接着搜 eclipse .snap , 这次运气不错, 马上搜到了一篇文章. 这篇文章的作者也是遇到 eclipse 卡死在 loading workbench 页面, 而且把问题也是定位在 .snap 文件上面,  他的做法也是删掉 .snap文件, 但是他比我幸运, 他删掉 .snap 文件后, eclipse就能够正常启动了. 而我的却不行. 但是在这篇文章中, 我了解到, 在 workspace/.metadata 文件夹下有个 .log 文件, 这个是eclipse的日志文件. 发现这个东西后, 那就好办了. 接下来研究这个 .log 文件.

5, 为了验证我的问题具体是什么原因, 我先把 .snap 文件还原,  拿着带有 .snap 文件的工作空间去启动eclipse, 然后再看 .log 文件, 这个时候发现 .log 日志文件中有

  !ENTRY org.eclipse.core.resources 2 10035 2016-03-18 20:00:15.600
    !
MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

 这样两句日志, 而我所看的那篇文章是同样的日志, 同样的异常, 他把 .snap 文件删除了, 问题解决了. 但是我的还没有解决. 不过没关系, 因为知道了有日志文件就好办了. 接下来依然是删除 .snap 文件, 然后再看日志文件就好了.

6, 在我删除.snap文件后, 再次打开, 然后eclipse 依然无法启动, 接着再看日志文件, 


!ENTRY org.eclipse.core.resources 4 567 2016-03-18 20:03:47.817
!MESSAGE Workspace restored, but some problems occurred.
!SUBENTRY 1 org.eclipse.core.resources 4 567 2016-03-18 20:03:47.818


!MESSAGE Could not read metadata for 'testtestest'.
!STACK 1
org.eclipse.core.internal.resources.ResourceException(D:/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/testtestest/2.tree)[568]: java.io.FileNotFoundException: D:\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\testtestest\2.tree (系统找不到指定的路径。)


 原来问题是出在上图红色文字处, 正准备着手处理, 这个时候不知道是幸运, 还是不幸运, 项目居然打开了.  博客写到这里, 才发现自己当时犯了一个很严重的错误, 现在想来懊恼不已. 当时因为发现是 和 testtestest 这个工程有关, 我进入eclipse后, 直接把 testtestest 这个工程删掉了(没有删除本地工作空间的工程, 只是把eclipse里面的删除了), 并且clean了下 eclipse. 然后再退出, 再打开eclipse, 发现没有任何问题. 其实现在看来, 正确的做法应该是先在工作空间和 eclipse 里面看看 testtestest 这个工程的, 因为在前文我有提到, 在我解决问题后, 发现 testtestest 这个工程中的代码丢掉了. 现在也不好判断, 到底是原本 eclipse 出错时, 这个工程的代码就弄丢了. 还是自己后来的删除操作把 testtestest 这个工程中的代码给弄丢了. 如果当时看了且代码没有丢掉的话, 先把这个工程备份, 然后一切准备工作完成后, 再尝试删除 D:/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/testtestest/2.tree 这个文件, 看看能不能解决问题, 如果不能解决问题, 再尝试删除  D:/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/testtestest 这个目录. 再最后都不行的话, 再删 eclipse 里面的

testtestest 工程. 哪怕是当时 testtestest 工程代码已经弄丢了, 如果当时这样做, 也可以验证下, 是不是删除 2.tree这个文件 或者删除 D:/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/testtestest 这个路径下的 testtestest 这个文件夹也能够解决问题. 这样就可以多学到一点知识, 也就不会有现在的懊恼了.  最后, 再总结下, 工具发生问题, 一定是先去找到它的日志文件, 然后根据日志文件进行分析. 而不要盲目的去找问题.

    


0 0