Eclipse挂起加载工作台

时间:2012-01-23 13:01:52

标签: eclipse macos osx-snow-leopard

我的eclipse停止加载工作台。我试过已经开始使用./eclipse --clean

从控制台启动时会抛出以下异常:

java.lang.NullPointerException
    at org.eclipse.core.internal.runtime.Log.isLoggable(Log.java:101)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeIsLoggable(ExtendedLogReaderServiceFactory.java:57)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:158)
    at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:146)
    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:60)
    at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:92)
    at org.tigris.subversion.clientadapter.Activator.getAnyClientAdapter(Activator.java:81)
    at org.tigris.subversion.subclipse.core.SVNClientManager.getAdapter(SVNClientManager.java:145)
    at org.tigris.subversion.subclipse.core.SVNClientManager.getSVNClient(SVNClientManager.java:92)
    at org.tigris.subversion.subclipse.core.SVNProviderPlugin.getSVNClient(SVNProviderPlugin.java:425)
    at org.tigris.subversion.subclipse.core.status.NonRecursiveStatusUpdateStrategy.statusesToUpdate(NonRecursiveStatusUpdateStrategy.java:53)
    at org.tigris.subversion.subclipse.core.status.StatusCacheManager.refreshStatus(StatusCacheManager.java:273)
    at org.tigris.subversion.subclipse.core.resourcesListeners.FileModificationManager.refreshStatus(FileModificationManager.java:179)
    at org.tigris.subversion.subclipse.core.resourcesListeners.FileModificationManager.resourceChanged(FileModificationManager.java:128)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1530)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:45)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

加载com.android.ide.eclipse.adt

时停止

我的工作台出了什么问题?

Eclipse startup screen

22 个答案:

答案 0 :(得分:145)

DISCLAIMER: THIS WILL DELETE ALL OF YOUR ECLIPSE WORKSPACE SETTINGS AND YOU WILL HAVE TO RE-IMPORT ALL YOUR PROJECTS, THERE ARE LESS DESTRUCTIVE ANSWERS HERE

尝试以下方法:

  1. 删除本地工作区中的 .metadata 文件夹(这对我有用)。它似乎包含一个.LOCK文件,如果没有正确关闭,可以防止eclipse正常启动。在基于Unix的系统上,您可以在命令行上键入以下内容;

    rm -r workspace/.metadata
    
  2. 删除主目录中的 .eclipse 目录。发射日食。如果这不起作用,

  3. 在另一个用户帐户下打开eclipse。如果加载,您知道问题出在您的帐户上,而不是您的日食安装。

答案 1 :(得分:91)

显示的程序 http://off-topic.biz/en/eclipse-hangs-at-startup-showing-only-the-splash-screen/ 为我工作:

  1. cd .metadata / .plugins
  2. mv org.eclipse.core.resources org.eclipse.core.resources.bak
  3. 启动eclipse。 (它应该显示错误消息或空工作区,因为没有找到项目。)
  4. 关闭所有打开的编辑器标签。
  5. 退出日食。
  6. rm -rf org.eclipse.core.resources(删除新创建的目录。)
  7. mv org.eclipse.core.resources.bak / org.eclipse.core.resources(恢复原始目录。)
  8. 启动eclipse并开始工作。 : - )
  9. 在其他答案中:

    eclipse -clean -clearPersistedState
    
    提到

    - 似乎具有相同甚至更好的效果。

    这是MacOS(使用Macports)和Linux(使用Eclipse在Ubuntu上测试)的脚本 Equinox)开始时可选择杀死正在运行的日食。您可能希望根据需要调整脚本。如果您添加新平台,请在此答案中编辑脚本。

    #!/bin/bash
    # WF 2014-03-14
    #
    # ceclipse:
    #   start Eclipse cleanly
    #
    #   this script calls eclipse with -clean and -clearPersistedState
    #   if an instance of eclipse is already running the user is asked
    #   if it should be killed first and if answered yes the process will be killed
    #
    # usage: ceclipse
    #
    
    #
    # error
    #
    #   show an error message and exit
    #
    #   params:
    #     1: l_msg - the message to display
    error() {
      local l_msg="$1"
      echo "error: $l_msg" 1>&2
      exit 1 
    }
    
    #
    # autoinstall
    #
    #  check that l_prog is available by calling which
    #  if not available install from given package depending on Operating system
    #
    #  params: 
    #    1: l_prog: The program that shall be checked
    #    2: l_linuxpackage: The apt-package to install from
    #    3: l_macospackage: The MacPorts package to install from
    #
    autoinstall() {
      local l_prog=$1
      local l_linuxpackage=$2
      local l_macospackage=$3
      echo "checking that $l_prog  is installed on os $os ..."
      which $l_prog 
      if [ $? -eq 1 ]
      then
        case $os in 
          # Mac OS
          Darwin) 
            echo "installing $l_prog from MacPorts package $l_macospackage"        
            sudo port install $l_macospackage
          ;;
          # e.g. Ubuntu/Fedora/Debian/Suse
          Linux)
            echo "installing $l_prog from apt-package $l_linuxpackage"        
            sudo apt-get install $l_linuxpackage
          ;;
          # git bash (Windows)
          MINGW32_NT-6.1)
            error "$l_prog ist not installed"
          ;;
          *)
            error "unknown operating system $os" 
        esac
      fi
    }
    
    # global operating system variable
    os=`uname`
    
    # first set 
    #  eclipse_proc - the name of the eclipse process to look for
    #  eclipse_app - the name of the eclipse application to start
    case $os in 
        # Mac OS
        Darwin) 
          eclipse_proc="Eclipse.app" 
          eclipse_app="/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse"
          ;;
        # e.g. Ubuntu/Fedora/Debian/Suse
        Linux)
          eclipse_proc="/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar"
          eclipse_app=`which eclipse`
          ;;
        # git bash (Windows)
        MINGW32_NT-6.1)
          eclipse_app=`which eclipse`
          error "$os not implemented yet"
          ;;
        *)
          error "unknown operating system $os" 
    esac
    
    # check that pgrep is installed or install it
    autoinstall pgrep procps
    
    # check whether eclipse process is running
    # first check that we only find one process
    echo "looking for $eclipse_proc process"
    pgrep -fl "$eclipse_proc"
    # can't use -c option on MacOS - use platform independent approach 
    #eclipse_count=`pgrep -cfl "$eclipse_proc"`
    eclipse_count=`pgrep -fl "$eclipse_proc" | wc -l | tr -d ' '`
    
    # check how many processes matched
    case $eclipse_count in
      # no eclipse - do nothing
      0) ;;
      # exactly one - offer to kill it
      1) 
         echo "Eclipse is running - shall i kill and restart it with -clean? y/n?"
           read answer
           case $answer in
             y|Y) ;;
               *) error "aborted ..." ;;
           esac
         echo "killing current $eclipse_proc"
         pkill -f "$eclipse_proc"
         ;;
      # multiple - this is bogus
      *) error "$eclipse_count processes matching $eclipse_proc found - please adapt $0";;
    esac
    
    tmp=/tmp/eclipse$$
    echo "starting eclipse cleanly ... using $tmp for nohup.out"
    mkdir -p $tmp
    cd $tmp
    
    # start eclipse with clean options
    nohup $eclipse_app -clean -clearPersistedState&
    

答案 2 :(得分:37)

./eclipse -clean -refresh
正如sulai 12月20日12:46在评论中提到的,这对我有用。

然而,在Mac OS X上,我必须弄清楚如何进入./eclipse

以下是解决方案:

cd Eclipse.app/Contents/MacOS/

感谢Andrew对此帖的评论:https://stackoverflow.com/a/1783448/2162226

答案 3 :(得分:19)

我找到的最佳解决方案是删除此文件:workspace / .metadata / .plugins / org.eclipse.e4.workbench / workbench

答案 4 :(得分:12)

无需删除整个元数据。只需尝试删除工作区文件夹中org.eclipse.core.resources下的 .snap 文件 恩。

  

workspaceFolder.metadata.plugins \ org.eclipse.core.resources

答案 5 :(得分:11)

我解决了从工作区dir(和所有子目录)中删除* .snap的问题:

  

元数据位于\ .plugins \ *。搭扣

答案 6 :(得分:8)

相当古老的问题,但最简单的答案尚未发布 这是:
1)[workspace]\.metadata\.plugins\org.eclipse.e4.workbench 删除 workbench.xmi文件中。
在大多数情况下已足够 - 尝试加载Eclipse。
您仍需要重新配置特定的透视设置(如果有)

2)现在遇到构建完美工程的问题?根据我的经验,以下步骤帮助:
- 取消选中项目 - >自动构建
- 切换到Java透视图(如果还没有): Window - >开放视角 - >爪哇
- 找到问题视图或打开它:窗口 - >显示视图 - >问题
- 右键单击​​问题组,然后选择删除。务必删除Lint错误
- 清理工作区:项目 - >清洁...... 选项清理所有项目
- 检查项目 - >自动构建
- 如果某些项目仍然存在问题:右键单击项目,选择属性 - > Android 并确保选择了适当的 Project Build Target

3)这对我来说总是足够的。但是如果你仍然遇到问题 - 请尝试@george发布建议

答案 7 :(得分:6)

以下程序适用于我的MacOS(Mavericks)和Eclipse Luna 4.4.1:

删除路径“workspaceFolder”.metadata.plugins \ org.eclipse.core.resources \

下的.snap文件

如果您不知道如何在Mac上导航到此文件夹,请按Cmd + Shift + G(转到文件夹),然后键入要导航的完整地址。

答案 8 :(得分:3)

看起来您可能遇到此问题:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=357199

答案 9 :(得分:3)

删除workspace / .metadata / .lock并使用-clean -refresh启动eclipse对我有用。

答案 10 :(得分:2)

您必须删除metadata.plugins \中的org.eclipse.e4.workbench文件夹,您可以在工作区文件夹中找到该文件夹​​。删除这个文件夹解决了我的问题,希望它可以帮助别人!

答案 11 :(得分:1)

我在Windows 7中遇到过这个问题,这就是为我解决的问题。

http://letsgetdugg.com/2009/04/19/recovering-a-corrupt-eclipse-workspace/

cd~ / Documents / workspace / .metalog / .plugins

rm -rf org.eclipse.core.resources

答案 12 :(得分:0)

Eclipse freezing at startup - before loading workspace 这个帖子的答案很好。重复对我有用的答案

在您的工作区目录中,执行以下步骤:

cd .metadata / .plugins

mv org.eclipse.core.resources org.eclipse.core.resources.bak

开始蚀。 (它会显示一条错误消息或一个空的工作区,因为未找到任何项目。)

关闭所有打开的编辑器标签。

日食。

rm -rf org.eclipse.core.resources(删除新创建的目录。)

mv org.eclipse.core.resources.bak / org.eclipse.core.resources(恢复原始目录。)

开始蚀并开始工作。 :-)

CharlesB的答案

答案 13 :(得分:0)

获取.metadata / .plugin / org.eclipse.core.resources文件夹的备份副本,然后删除该文件夹并启动eclipse。这应该启动工作区,但是所有项目都将消失,因为org.eclipse.core.resources会保留所有项目的列表。

接下来,正确关闭eclipse并将org.eclipse.core.resources从备份复制回.metadata / .plugins /文件夹,覆盖现有的。

打开eclipse,事情应该正常,所有项目都恢复正常。

答案 14 :(得分:0)

这是一种对我有用的破坏性较小的方法:

我在Windows机器上有一个Spring Tool Suite(Eclipse扩展)的副本,我从随机目录运行。在我的命令行提示符中,我必须导航到包含STS.exe的目录并运行:STS.exe -refresh

之后,我可以正常方式打开Eclipse(这是通过固定的任务栏图标)。

答案 15 :(得分:0)

在您的工作区中,您将找到隐藏的文件夹名称.metadata,您将在其中找到另一个隐藏文件夹“.mylyn”将其删除并清空垃圾箱 转到任务管理器停止Eclipse的进程并再次启动Eclipse,这次它将起作用。

享受!

答案 16 :(得分:0)

在对文件日期进行一些调查之后,我通过简单地删除本地工作区中的以下文件解决了同样的问题(这是我的Kepler上的随机故障): .metadata.plugins \ org.eclipse.jdt.core \ variablesAndContainers.dat

对工作区恢复的影响可以忽略不计。

我希望它可以帮助别人......

答案 17 :(得分:0)

尝试使用较新的eclipse版本加载和保存工作区也可能有所帮助:

我正在使用eclipse 3.8。启动时,启动画面会挂起。日志中没有错误消息。使用eclipse 4.2.2打开工作区有什么帮助。打开和关闭工作区后,我可以用3.8再次加载它。

答案 18 :(得分:0)

删除.metadata目录中的文件的麻烦是你必须从头开始工作台。因此,恢复所有项目可能需要一段时间,特别是如果您有多个项目。只需将现有文件替换为旧的备份文件,即可从备份中恢复.metadata。

答案 19 :(得分:0)

这种行为有很多可能的原因。除了从shell提示符运行之外,还有必要在工作区日志文件中找到线索,这是工作区目录下的.metadata / .log文件 - 即将到来的NPE看起来可能需要使用日志代码本身,但日志可能仍然有助于确定错误之前发生了什么。

网络搜索您找到的邮件通常会产生删除各种目录或文件并重新开始的建议。我有时能够删除部分.metadata / .plugins / org.eclipse.ui.workbench / workbench.xml,以获得破坏性较小的解决方案。

答案 20 :(得分:-1)

这个解决方案都没有帮助我。

我找到了可行的解决方案。我读到,当在Eclipse中没有正确更新ADT插件时会发生这种情况。

Solution
From Eclipse. . .
1. Go to Help Tap
2. Click Check for Updates

更新一切,哇!启动Eclipse时不再冻结!

答案 21 :(得分:-1)

我没有尝试所有这些。笔记本电脑/机器重启了。之后一切都恢复正常。