Eclipse зависает на загрузочном верстаке

95

My 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

endian
источник
1
Похоже, что --cleanничего не делает, в то время как -clean(одиночный дефис), похоже, действительно имеет эффект (в моем случае используется Eclipse Neon).
Кристофер Шульц

Ответы:

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

Попробуйте следующее:

  1. Удалите папку .metadata в вашем локальном рабочем пространстве (у меня это сработало). Кажется, что он содержит файл .LOCK, который, если он не закрыт должным образом, препятствует правильному запуску eclipse. В системах на базе Unix вы можете ввести следующее в командной строке;

    rm -r workspace/.metadata
    
  2. Удалите каталог .eclipse в домашнем каталоге. Запустить затмение. Если это не сработает,

  3. Откройте eclipse под другой учетной записью. Если он загружается, вы знаете, что проблема в вашей учетной записи, а не в вашей установке eclipse.

Джордж
источник
это случилось со мной после того, как я по ошибке нажал «Файл-> перезапустить».
nurnachman
68
В большинстве случаев rm workspace/.metadata/.lockу меня работает. Обязательно запустите eclipse, используя ./eclipse -clean -refreshвсе, что вы пытаетесь. Спасибо за обучение mv .eclipse .eclipse.old, которое сегодня не помогло. Сегодня помогло удалить workspace/.metadata/.plugins/. После этого все плагины действительно работали. Некоторые настройки пропали. Затем вы можете использовать Import...для импорта всех ваших существующих проектов сразу. Удаление workspace/.metadata- это последний вариант, но он работает. Можете оставить, workspace/.metadata/.mylynесли не хотите терять свои задачи.
сулай
Большое спасибо за это! Сэкономил мне много усилий, когда Eclipse внезапно перестал отвечать .. Stackoverflow качается, и сообщество тоже!
HungryForKnowledge
3
Просто удалите файл .lock - не нужно терять все настройки!
slott
7
удаление .lock не помогло мне , но удаление .metadata/.plugins/org.eclipse.core.resources/.snapсделал
саржа
92

Для меня сработала процедура, показанная на 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. Начать затмение. (Должно отображаться сообщение об ошибке или пустая рабочая область, потому что проект не найден.)
  4. Закройте все вкладки открытых редакторов.
  5. Выйти из затмения.
  6. rm -rf org.eclipse.core.resources (Удалить вновь созданный каталог.)
  7. mv org.eclipse.core.resources.bak / org.eclipse.core.resources (Восстановить исходный каталог.)
  8. Запускаем eclipse и начинаем работать. :-)

В других ответах:

eclipse -clean -clearPersistedState

упоминается - что, кажется, имеет такой же или даже лучший эффект.

Вот сценарий для MacOS (с использованием Macports) и Linux (протестирован на Ubuntu с Eclipse Equinox) для запуска с необязательным уничтожением запущенного eclipse. Возможно, вы захотите адаптировать сценарий к своим потребностям. Если вы добавляете новые платформы, отредактируйте скрипт прямо в этом ответе.

#!/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&
Вольфганг Фаль
источник
1
Спасибо! это лучший подход, чем просто удаление всей папки .metadata. он работал отлично
Якоб
1
Намного лучше. Помогли в Kepler на Mac OS X Mavericks
Роберт Сёземанн
5
Это "eclipse -clean -clearPersistedState" помогло мне, спасибо!
Михал
2
-clean -clearPersistedState работал у меня в Aptana Studio 3 при победе 7
Лоренц Хаасе
2
eclipse -clean -clearPersistedState работает в Kepler Win 7
Ицхак
37
./eclipse -clean -refresh

как упоминалось в комментарии sulai 20 дек. '12 в 12:46, это сработало для меня.

Однако в Mac OS X мне пришлось выяснить, как добраться до ./eclipse

Вот решение:

cd Eclipse.app/Contents/MacOS/

Спасибо за комментарий Эндрю к этому сообщению: https://stackoverflow.com/a/1783448/2162226

Джин Бо
источник
2
Сначала мне пришлось открыть новую рабочую область (я назвал ее test) с помощью -clean -refresh. И когда Eclipse (в моем случае это был GGTS) ​​открылся, я выбрал «Файл»> «Переключить рабочее пространство» и вернулся в рабочее пространство, которое изначально вызвало проблему с зависанием.
pm_labs 01
В Eclipse Luna приложение на самом деле представляет собой просто файл, нет необходимости вставлять компакт-диск в папку. Просто бегу ./eclipse -clean -refreshисправил это для меня
Сирены
20

Лучшее решение, которое я нашел, - удалить этот файл: workspace / .metadata / .plugins / org.eclipse.e4.workbench / workbench

user1252459
источник
2
В затмении индиго. Попробуйте rm workspace / .metadata / .plugins / org.eclipse.ui.workbench /
Гир,
1
Это
помогло мне решить
на моем MacBook Pro 12 "это решение сработало для меня лучше всего
ironmantis7x
12

нет необходимости удалять все метаданные. просто попробуйте удалить файл .snap в org.eclipse.core.resources в папке рабочей области ex.

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

user742102
источник
Удаление этого файла помогало мне почти каждый раз, когда Eclipse зависал при запуске. Спасибо!
Джозеф
удаление файла .snap сработало для меня для Eclipse Mars - 4.5.1 (на Mac El Capitan)
hashcoder
Работал для меня с JBoss Developer Studio 10
Томас
11

Я решил удалить * .snap из каталога рабочей области (и всех подкаталогов):

метаданные \ .plugins \ *. snap

Lujop
источник
1
Это спасло меня от потери всех моих настроек!
tprk77
8

Довольно старый вопрос, но самый простой ответ еще не опубликован.
Вот он:
1) В [workspace]\.metadata\.plugins\org.eclipse.e4.workbench удаленном workbench.xmi файле.
В большинстве случаев этого достаточно - попробуйте загрузить Eclipse.
Тем не менее вам необходимо повторно настроить параметры вашей конкретной перспективы (если есть)

2) Теперь возникают проблемы со строительными проектами, которые отлично работали? По моему опыту, помогают следующие шаги:
- снимите отметку « Проекты» -> «Создавать автоматически»
- переключитесь на перспективу Java (если еще нет): « Окно» -> «Открыть перспективу» -> «Java»
- найдите представление « Проблемы» или откройте его: « Окно» -> «Показать представление» -> «Проблемы»
- щелкните правой кнопкой мыши проблемные группы и выберите Удалить . Обязательно удалите ошибки Lint
- очистите рабочую область: Проект -> Очистить ... с опцией Очистить все проекты
- отметьте Проекты-> Создавать автоматически
- если проблемы сохраняются для некоторых проектов: щелкните правой кнопкой мыши проект, выберите Свойства -> Androidи убедитесь, что выбрана соответствующая цель сборки проекта

3) Меня всегда хватало. Но если проблемы все равно возникают - попробуйте рекомендации поста @george

сберезин
источник
Спасибо! Ничего другого не помогло, кроме удаления workbench.xmi
Просто Крейг
6

Следующая процедура работала на моей MacOS (Mavericks) и Eclipse Luna 4.4.1:

Удалите файл .snap по пути "workspaceFolder" .metadata.plugins \ org.eclipse.core.resources \

Если вы не знаете, как перейти к этой папке на Mac, нажмите Cmd + Shift + G (Перейти в папку) и введите полный адрес, по которому вы хотите перейти.

user3087315
источник
3

удаление рабочей области / .metadata / .lock и запуск eclipse с -clean -refresh сработали для меня.

Николя Робер-Дехо
источник
2

Вам необходимо удалить папку org.eclipse.e4.workbench внутри metadata.plugins \, которую вы можете найти в папке рабочей области. Удаление этой папки решило проблему для меня, надеюсь, это поможет кому-то другому!

Гильермо Зуби
источник
0

Есть много возможных причин такого поведения. В дополнение к запуску из командной строки, как у вас есть, стоит поискать подсказки в файле журнала вашей рабочей области, который является файлом .metadata / .log в каталоге вашей рабочей области - NPE, который вам подходит, похоже, что он должен сделать с самим кодом регистрации, но журнал все же может помочь определить, что происходило до ошибки.

Поиск в Интернете сообщений, которые вы найдете, часто дает предложения удалить различные каталоги или файлы и начать заново. Однако иногда мне удавалось просто удалить части .metadata / .plugins / org.eclipse.ui.workbench / workbench.xml для менее разрушительных решений.

Майкл Шепер
источник
0

Проблема с удалением файлов в каталоге .metadata заключается в том, что вам придется запускать рабочую среду с нуля. Таким образом, восстановление всех ваших проектов может занять некоторое время, особенно если у вас их несколько. Восстановление .metadata из резервной копии просто путем замены существующих файлов на старые резервные копии сработало для меня.

Лулан
источник
0

Также может помочь попытаться загрузить и сохранить рабочую область с более новой версией eclipse:

Я использую eclipse 3.8. При запуске зависала заставка. В журнале нет сообщений об ошибках. Что помогло, так это открытие рабочего пространства с помощью eclipse 4.2.2. После открытия и закрытия рабочего пространства я смог снова загрузить его с помощью 3.8.

e1i45
источник
0

После некоторого исследования дат файлов я решил ту же проблему (которая является случайно повторяющейся проблемой на моем Kepler), просто удалив следующий файл в моей локальной рабочей области: .metadata.plugins \ org.eclipse.jdt.core \ variablesAndContainers.dat

с незначительным влиянием на восстановление рабочего пространства.

Надеюсь, это поможет кому-то другому ...

rpaulin56
источник
0

В вашем рабочем пространстве вы найдете скрытую папку с именем .metadata, в которой вы найдете еще одну скрытую папку «.mylyn», удалите ее и очистите корзину, перейдите в диспетчер задач, остановите процесс Eclipse и запустите снова Eclipse, на этот раз он будет работать.

Наслаждайтесь!

Фахир
источник
0

Вот менее разрушительный метод, который у меня сработал:

Я нахожусь на машине с Windows с копией Spring Tool Suite (расширение Eclipse), которую я запускаю из случайного каталога. В моей командной строке, я должен был перейти в каталог , который содержит мою STS.exeи выполните команду: STS.exe -refresh.

После этого я мог открыть Eclipse обычным способом (через закрепленный значок на панели задач).

Xchai
источник
0

Получите резервную копию папки .metadata / .plugin / org.eclipse.core.resources, затем удалите эту папку и запустите eclipse. Это должно запустить рабочую область, но все проекты исчезнут, поскольку org.eclipse.core.resources хранит список всех проектов.

Затем закройте eclipse должным образом и скопируйте org.eclipse.core.resources из резервной копии в папку .metadata / .plugins /, заменив существующую.

Откройте eclipse, и все должно работать нормально, все ваши проекты вернутся в нормальное состояние.

Расул
источник
0

Замораживание Eclipse при запуске - перед загрузкой рабочей области очень хороший ответ на этот пост. повторяя ответ, который сработал для меня

В каталоге рабочей области выполните следующие действия:

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 (Восстановить исходный каталог.)

Запускаем eclipse и начинаем работать. :-)

Ответ CharlesB

Апарна
источник
-1

Ни одно решение не помогло мне в моем случае.

Но я нашел рабочее решение. Я читал, что это происходит, когда плагин ADT не обновляется должным образом в Eclipse.

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

Обновите все и эй! Больше не зависает при запуске Eclipse!

coolcool1994
источник
-1

Все это я не пробовал. Я перезапустил ноутбук / машину. И после этого все вернулось на круги своя.

Puneet
источник