Eclipse zawiesza się podczas ładowania stołu roboczego

95

Moje eclipse przestaje ładować stół warsztatowy. Próbowałem już zacząć od ./eclipse --clean

Przy uruchomieniu z konsoli zgłasza następujący wyjątek:

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)

Zatrzymuje się podczas ładowania com.android.ide.eclipse.adt

Co jest nie tak z moim warsztatem?

Ekran startowy Eclipse

endian
źródło
1
Wygląda na to, --cleanże nic nie robi, podczas gdy -clean(pojedynczy łącznik) wydaje się faktycznie mieć efekt (używając Eclipse Neon w moim przypadku).
Christopher Schultz,

Odpowiedzi:

146

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

Spróbuj wykonać następujące czynności:

  1. Usuń folder .metadata w lokalnym obszarze roboczym (w moim przypadku to zadziałało). Wygląda na to, że zawiera plik .LOCK, który jeśli nie jest poprawnie zamknięty, uniemożliwia poprawne uruchomienie Eclipse. W systemach opartych na Uniksie możesz wpisać następujące polecenie w wierszu poleceń;

    rm -r workspace/.metadata
    
  2. Usuń katalog .eclipse z katalogu domowego. Uruchom zaćmienie. Jeśli to nie zadziała,

  3. Otwórz eclipse na innym koncie użytkownika. Jeśli się załaduje, wiesz, że problem dotyczy twojego konta, a nie instalacji zaćmienia.

Jerzy
źródło
zdarzyło mi się to po tym, jak przez pomyłkę kliknąłem Plik-> Uruchom ponownie.
nurnachman
68
W większości przypadków rm workspace/.metadata/.lockdziała dla mnie. Pamiętaj, aby rozpocząć zaćmienie, używając ./eclipse -clean -refreshwszystkiego, co spróbujesz. Dzięki za naukę mv .eclipse .eclipse.old, co dzisiaj nie pomogło. Dziś pomogło to usunąć workspace/.metadata/.plugins/. Wszystkie wtyczki faktycznie działały po tym. Niektóre ustawienia zniknęły. Następnie możesz Import...zaimportować wszystkie istniejące projekty jednocześnie. Usuwanie workspace/.metadatajest ostatnim wyborem, ale działa. Możesz zatrzymać, workspace/.metadata/.mylynjeśli nie chcesz stracić swoich zadań.
Sulai
Wielkie dzięki za to! Zaoszczędziło mi wiele wysiłku, gdy Eclipse przestało nagle odpowiadać… Stackoverflow rządzi, podobnie jak społeczność!
HungryForKnowledge
3
Po prostu usuń plik .lock - nie musisz tracić wszystkich ustawień!
slott
7
Usunięcie .lock nie pomogło, ale usunięcie .metadata/.plugins/org.eclipse.core.resources/.snaptak
serge
92

Procedura pokazana na http://off-topic.biz/en/eclipse-hangs-at-startup-showing-only-the-splash-screen/ zadziałała dla mnie:

  1. cd .metadata / .plugins
  2. mv org.eclipse.core.resources org.eclipse.core.resources.bak
  3. Rozpocznij zaćmienie. (Powinien pokazać komunikat o błędzie lub pusty obszar roboczy, ponieważ nie znaleziono projektu).
  4. Zamknij wszystkie otwarte karty edytorów.
  5. Wyjdź z zaćmienia.
  6. rm -rf org.eclipse.core.resources (Usuń nowo utworzony katalog.)
  7. mv org.eclipse.core.resources.bak / org.eclipse.core.resources (Przywróć oryginalny katalog.)
  8. Rozpocznij zaćmienie i zacznij działać. :-)

W innych odpowiedziach:

eclipse -clean -clearPersistedState

wspomniano - co wydaje się mieć taki sam lub nawet lepszy efekt.

Oto skrypt dla MacOS (przy użyciu Macports) i Linux (testowany na Ubuntu z Eclipse Equinox), aby rozpocząć od opcjonalnego zabicia działającego zaćmienia. Możesz dostosować skrypt do swoich potrzeb. Jeśli dodasz nowe platformy, edytuj skrypt bezpośrednio w tej odpowiedzi.

#!/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&
Wolfgang Fahl
źródło
1
dzięki! jest to lepsze podejście niż usunięcie całego folderu .metadata. działało idealnie
Jakob
1
Dużo lepiej. Pomagał w Kepler na Mac OS X Mavericks
Robert Sösemann
5
To „zaćmienie-czyste-czyste -przezroczyste” pomogło mi, dziękuję!
Michał
2
-clean -clearPersistedState pracował dla mnie w Aptana Studio 3 po wygranej 7
Lorenz Haase
2
eclipse -clean -clearPersistedState Pracował w Kepler Win 7
Yitzchak
37
./eclipse -clean -refresh

jak wspomniano w komentarzu sulai 20 grudnia 12 o 12:46, to zadziałało dla mnie.

Jednak w systemie Mac OS X musiałem wymyślić, jak dostać się do ./eclipse

Oto rozwiązanie:

cd Eclipse.app/Contents/MacOS/

Dziękuję Andrzejowi za komentarz do tego postu: https://stackoverflow.com/a/1783448/2162226

Gene Bo
źródło
2
Najpierw musiałem otworzyć nowy obszar roboczy (nazwałem go testem) za pomocą -clean -refresh. A kiedy Eclipse (w moim przypadku był to GGTS) ​​otworzyło się, wybrałem Plik> Przełącz obszar roboczy i wróciłem do obszaru roboczego, który pierwotnie spowodował problem z zawieszaniem się.
pm_labs
W Eclipse Luna aplikacja jest w rzeczywistości tylko plikiem, nie ma potrzeby umieszczania płyty CD w folderze. Samo bieganie ./eclipse -clean -refreshnaprawiło to dla mnie
Syreny,
20

Najlepszym rozwiązaniem, jakie znalazłem, jest usunięcie tego pliku: workspace / .metadata / .plugins / org.eclipse.e4.workbench / workbench

user1252459
źródło
2
W kolorze Eclipse Indigo. Wypróbuj rm workspace / .metadata / .plugins / org.eclipse.ui.workbench /
Gere
1
To wyjaśniło mi ten problem dzięki TIBCO BusinessWorks Design Studio w systemie Windows 7.
Alex Beynenson,
na moim 12
calowym
12

nie ma potrzeby usuwania całych metadanych. po prostu spróbuj usunąć plik .snap w org.eclipse.core.resources w folderze obszaru roboczego, np.

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

user742102
źródło
Usunięcie tego jednego pliku działało prawie za każdym razem, gdy Eclipse zawiesza się podczas uruchamiania. Dzięki!
Joseph
usuwanie pliku .snap działało dla mnie dla Eclipse Mars - 4.5.1 (na Mac El Capitan)
hashcoder
Pracował dla mnie z JBoss Developer Studio 10
Thomas
11

Rozwiązałem usuwanie * .snap z katalogu roboczego (i wszystkich podkatalogów):

metadata \ .plugins \ *. snap

lujop
źródło
1
To uchroniło mnie przed utratą wszystkich ustawień!
tprk77
8

Dość stare pytanie, ale najprostsza odpowiedź nie została jeszcze opublikowana.
Oto on:
1) W [workspace]\.metadata\.plugins\org.eclipse.e4.workbench usuniętym workbench.xmi pliku.
W większości przypadków wystarczy - spróbuj załadować Eclipse.
Nadal musisz ponownie skonfigurować określone ustawienia perspektywy (jeśli istnieją)

2) Masz teraz problemy z projektami budowlanymi, które działały idealnie? Z mojego doświadczenia wynika, że ​​poniższe kroki pomagają:
- odznacz Projekty -> Buduj automatycznie
- przełącz na perspektywę Java (jeśli jeszcze nie): Okno -> Otwórz perspektywę -> Java
- zlokalizuj widok Problemy lub otwórz go: Okno -> Pokaż widok -> Problemy
- kliknij prawym przyciskiem myszy grupy problemów i wybierz Usuń . Pamiętaj, aby usunąć błędy Lint
- wyczyść obszar roboczy: Projekt -> Wyczyść ... z opcją Wyczyść wszystkie projekty
- wybierz Projekty-> Kompiluj automatycznie
- jeśli problemy będą się powtarzać dla niektórych projektów: kliknij projekt prawym przyciskiem myszy, wybierz Właściwości -> Androidi upewnij się, że wybrano odpowiedni cel kompilacji projektu

3) Zawsze mi wystarczało. Ale jeśli nadal masz problemy - wypróbuj rekomendacje @george

sberezin
źródło
Dziękuję Ci! Nic innego nie działało, ale usunięcie Workbench.xmi
Simply Craig
6

Poniższa procedura działała na moim MacOS (Mavericks) i Eclipse Luna 4.4.1:

Usuń plik .snap ze ścieżki „workspaceFolder” .metadata.plugins \ org.eclipse.core.resources \

Jeśli nie wiesz, jak przejść do tego folderu na komputerze Mac, naciśnij Cmd + Shift + G (przejdź do folderu) i wpisz pełny adres, dla którego chcesz nawigować.

user3087315
źródło
3

usunięcie obszaru roboczego / .metadata / .lock i rozpoczęcie zaćmienia z -clean -refresh działało dla mnie.

Nicolas Robert-Dehault
źródło
2

Musisz usunąć folder org.eclipse.e4.workbench wewnątrz metadata.plugins \, który można znaleźć w folderze obszaru roboczego. Usunięcie tego folderu rozwiązało problem za mnie, mam nadzieję, że pomoże to komuś innemu!

Guillermo Zooby
źródło
0

Istnieje wiele możliwych przyczyn takiego zachowania. Oprócz uruchamiania z zachęty powłoki, jak to masz, warto poszukać wskazówek w pliku dziennika obszaru roboczego, którym jest plik .metadata / .log w katalogu obszaru roboczego - wygląda na to, że NPE, który się pojawi, powinien być zrobić z samym kodem logowania, ale dziennik może nadal pomóc określić, co się działo przed wystąpieniem błędu.

Wyszukiwanie w sieci wiadomości często zawiera sugestie dotyczące usunięcia różnych katalogów lub plików i ponownego rozpoczęcia. Czasami udało mi się po prostu usunąć części .metadata / .plugins / org.eclipse.ui.workbench / workbench.xml, aby uzyskać mniej destrukcyjne rozwiązania.

Michael Scheper
źródło
0

Problem z usuwaniem plików w katalogu .metadata polega na tym, że trzeba by było uruchomić środowisko pracy od zera. Dlatego przywrócenie wszystkich projektów może trochę potrwać, zwłaszcza jeśli masz ich kilka. Przywrócenie .metadata z kopii zapasowej po prostu przez zastąpienie istniejących plików starymi kopiami zapasowymi zadziałało.

lulan
źródło
0

Pomocne może być również załadowanie i zapisanie obszaru roboczego w nowszej wersji zaćmienia:

Używam Eclipse 3.8. Podczas uruchamiania ekran powitalny zawieszał się. W dzienniku nie było komunikatów o błędach. Pomogło otwarcie obszaru roboczego za pomocą zaćmienia 4.2.2. Po otwarciu i zamknięciu obszaru roboczego udało mi się go ponownie załadować w wersji 3.8.

e1i45
źródło
0

Po dokładnym zbadaniu dat plików rozwiązałem ten sam problem (który jest losowo powtarzającym się problemem w moim Keplerze), po prostu usuwając następujący plik w moim lokalnym obszarze roboczym: .metadata.plugins \ org.eclipse.jdt.core \ variableAndContainers.dat

o znikomym wpływie na przywracanie obszaru roboczego.

Mam nadzieję, że pomoże to komuś innemu ...

rpaulin56
źródło
0

W swoim obszarze roboczym znajdziesz ukrytą nazwę folderu .metadata, w którym znajdziesz kolejny ukryty folder „.mylyn”, usuń go i opróżnij kosz przejdź do menedżera zadań, zatrzymaj proces Eclipse i uruchom ponownie Eclipse tym razem zadziała.

Cieszyć się!

Faakhir
źródło
0

Oto mniej destrukcyjna metoda, która zadziałała w moim przypadku:

Jestem na komputerze z systemem Windows z kopią Spring Tool Suite (rozszerzenie Eclipse), które uruchamiam z losowego katalogu. W mojej linii wiersza poleceń, musiałem przejść do katalogu, który zawierał moje STS.exei uruchomić: STS.exe -refresh.

Potem mogłem otworzyć Eclipse w normalny sposób (za pomocą przypiętej ikony paska zadań).

Xchai
źródło
0

Uzyskaj kopię zapasową folderu .metadata / .plugin / org.eclipse.core.resources, a następnie usuń ten folder i uruchom eclipse. To powinno uruchomić obszar roboczy, ale wszystkie projekty zostaną usunięte, ponieważ org.eclipse.core.resources przechowuje listę wszystkich projektów.

Następnie zamknij poprawnie zaćmienie i skopiuj z powrotem org.eclipse.core.resources z kopii zapasowej do folderu .metadata / .plugins / nadpisując istniejący.

Otwórz zaćmienie i wszystko powinno działać dobrze, a wszystkie projekty wrócą do normy.

Rasoul
źródło
0

Zamrożenie Eclipse przy starcie - przed załadowaniem obszaru roboczego bardzo dobra odpowiedź na ten post. powtarzając odpowiedź, która mi pomogła

W katalogu obszaru roboczego wykonaj następujące czynności:

cd .metadata / .plugins

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

Rozpocznij zaćmienie. (Powinien pokazać komunikat o błędzie lub pusty obszar roboczy, ponieważ nie znaleziono projektu).

Zamknij wszystkie otwarte karty edytorów.

Wyjdź z zaćmienia.

rm -rf org.eclipse.core.resources (Usuń nowo utworzony katalog.)

mv org.eclipse.core.resources.bak / org.eclipse.core.resources (Przywróć oryginalny katalog.)

Rozpocznij zaćmienie i zacznij działać. :-)

Odpowiedz przez CharlesB

Aparna
źródło
-1

Żadne z rozwiązań nie pomogło mi w mojej sprawie.

Jednak znalazłem działające rozwiązanie. Czytałem, że dzieje się tak, gdy wtyczka ADT nie jest poprawnie aktualizowana w Eclipse.

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

Zaktualizuj wszystko i zaraz! Już nie zawiesza się przy uruchamianiu Eclipse!

coolcool1994
źródło
-1

Nie próbowałem tego wszystkiego. Uruchomiłem ponownie przez laptopa / maszynę. A potem wszystko wróciło do normy.

Puneet
źródło