95 votes

Eclipse se bloque lors du chargement du banc de travail

Mon eclipse cesse de charger le workbench. J'ai déjà essayé de démarrer avec ./eclipse --clean

Lorsque vous démarrez à partir de la console, l'exception suivante se produit :

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)

Il s'arrête lors du chargement de com.Android.ide.eclipse.adt

Qu'est-ce qui ne va pas avec mon établi ?

Eclipse startup screen

146voto

george Points 1083

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

Essayez ce qui suit :

  1. Supprimer le .métadonnées dans votre dossier local espace de travail (c'est ce qui a fonctionné pour moi). Il semble qu'il contienne un fichier .LOCK qui, s'il n'est pas correctement fermé, empêche eclipse de démarrer correctement. Sur les systèmes basés sur Unix, vous pouvez taper ce qui suit sur la ligne de commande ;

    rm -r workspace/.metadata
  2. Supprimez votre .eclipse dans votre répertoire personnel. Lancez eclipse. Si cela ne fonctionne pas,

  3. Ouvrez eclipse sous un autre compte utilisateur. S'il se charge, vous savez que le problème vient de votre compte, et non de l'installation d'eclipse.

91voto

Wolfgang Fahl Points 1920

La procédure indiquée à http://off-topic.biz/en/eclipse-hangs-at-startup-showing-only-the-splash-screen/ a fonctionné pour moi :

  1. cd .metadata/.plugins
  2. mv org.eclipse.core.resources org.eclipse.core.resources.bak
  3. Démarrer l'éclipse. (Il devrait afficher un message d'erreur ou un espace de travail vide car aucun projet n'est trouvé).
  4. Fermez tous les onglets d'éditeurs ouverts.
  5. Sortie de l'éclipse.
  6. rm -rf org.eclipse.core.resources (Supprime le répertoire nouvellement créé.)
  7. mv org.eclipse.core.resources.bak/ org.eclipse.core.resources (Restaure le répertoire original.)
  8. Lancez Eclipse et commencez à travailler :-)

Dans d'autres réponses :

eclipse -clean -clearPersistedState

est mentionné - ce qui semble avoir le même effet, voire un meilleur effet.

Voici un script pour MacOS (en utilisant Macports) et Linux (testé sur Ubuntu avec Eclipse) Equinox) pour faire le démarrage avec un kill optionnel de l'eclipse en cours d'exécution. Vous pourriez vouloir adapter le script à vos besoins. Si vous ajoutez de nouvelles plateformes, veuillez modifier le script à droite dans cette réponse.

#!/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&

37voto

gnB Points 760
./eclipse -clean -refresh

comme mentionné dans le commentaire de sulai Dec 20 '12 à 12:46, cela a fonctionné pour moi.

Cependant, sur Mac OS X, j'ai dû trouver comment accéder au fichier ./eclipse.

Voici la solution :

cd Eclipse.app/Contents/MacOS/

Merci au commentaire d'Andrew pour ce post : https://stackoverflow.com/a/1783448/2162226

19voto

user1252459 Points 161

La meilleure solution que j'ai trouvée est de supprimer ce fichier : workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench

11voto

lujop Points 3066

J'ai résolu le problème en supprimant *.snap du répertoire de l'espace de travail (et de tous les sous-répertoires) :

métadonnées \.plugins\ *.snap

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X