Не работает Eclipse Java Content Assist

Content Assist в Eclipse 3.4 и 3.5 перестала работать для меня. Когда я печатаю первые несколько символов класса и нажимаю CRTL-пространство, то после задержки я получаю следующее сообщение об ошибке alt text http://locuslive.com/webdrive/JDTscreenshot.png

Не имеет значения, какие предложения я включаю/отключаю, я получу это (или подобное) сообщение.

Я пробовал:

  • Изменение значений Xms/Xmx

  • Запуск Eclipse с -clean

  • Создание нового рабочего пространства и импорт моих проектов

Однако никто из них не работал.

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

Моя проблема очень похожа на ту, что была рассмотрена в этом сообщении, хотя в более поздней версии и на OSX 10.5.7.

Есть ли у кого-нибудь предложения о том, как это можно решить?

Спасибо.

ОБНОВЛЕНИЕ. Для всех, кто интересуется, у меня были лучшие результаты с помощью Eclipse 3.5 Classic (т.е. не включает Mylyn). Я также использовал параметры, указанные в отчетах об ошибках, связанных с VonC ниже.

Интересно, что Classic не приходит с некоторыми взглядами, например. Фрагменты, но их легко вставить из другого дистрибутива.

ОБНОВЛЕНИЕ 2. Эта проблема действительно сохранялась даже при использовании последних версий Eclipse (3.6 M1). Это вызвано большим JAR файлом, созданным моей Altova Mapforce для обработки преобразований EDIFACT в нашем приложении. Это можно воспроизвести, добавив этот JAR в путь сборки и никаких изменений в настройках справки Content Assist. Ошибка (и JAR) можно увидеть на https://bugs.eclipse.org/bugs/show_bug.cgi?id=289057

Ответы

Ответ 1

в Mylyn FAQ упоминает:

Почему появляется сообщение об ошибке при использовании поддержки содержимого?

Если после вызова Content Assist вы увидите диалоговое окно с сообщением об ошибке:

 The extension took too long to return from the 'computeCompletionProposals()' operation

http://wiki.eclipse.org/images/0/0a/Mylyn-content-assist-timeout.gif

это наиболее вероятно из-за чего-то, прерывающего операцию предложения (например, сбор мусора). Игнорируйте его, если он не повторяется, увеличьте память затмений, если это произойдет (например, с помощью аргумента командной строки -Xmx384M). Подробнее см. ошибка 141457.

Обратите внимание, что Mylyn должен добавлять только излишнее количество накладных расходов для вычисления вспомогательной информации, однако стандартный механизм поддержки содержимого не будет сообщать о тайм-аутах такого типа (т.е. для вычисления предложений требуется более 5 секунд). Если система, над которой вы работаете, настолько велика, что увеличение объема памяти не уменьшает тайминги, чтобы избежать сообщения, вы также можете рассмотреть возможность отключения Mylyn-специфического вспомогательного содержимого, как описано выше, но если вы сделаете это, прокомментируйте ошибка 141457.


Вы можете найти хорошие настройки затмения в этом SO-ответе.
Поскольку вы уже пытаетесь увеличить объем памяти, вы можете оставить комментарий к ошибке 141457.

Это может быть связано с ошибка 281871, только фиксированная в eclipse 3.5.1 и 3.6.

Я вижу это сейчас. Проблема в том, что помощь кода начинает использовать модель Java, если индекс еще не обновлен.

Вы можете либо дождаться окончания индексатора, либо увеличить время ожидания установка переменной среды org.eclipse.jdt.ui.codeAssistTimeout 'Java при запуске Eclipse, например

 -vmargs -Dorg.eclipse.jdt.ui.codeAssistTimeout=60000

Ответ 2

Я запустил то же самое, Content Assist не работает в Eclipse 3.7.2. До этой версии довольно стабильно, сложно, я не знаю, почему это никогда не сработало для меня.

У меня не было сообщений об ошибках и подсказок о том, почему он не работал, и мне потребовалось некоторое время, чтобы найти вариант "Java-предложения".

Он находится в настройках Eclipse → Java → Editor → Content Assist → Advanced.

Убедитесь, что Java-предложения отмечены.

Вы не повторяли предложения Java. Не проверяйте Java-не-Type-предложение или предложения Java-типа.

Ответ 3

Для меня это работает, выполняя prefrerence > general > keys > Restore Defaults

Не знаю его сумасшедшего, но это то, что наконец работает после всех поисковых запросов и следов.

С уважением, Маниш

Ответ 4

Похоже, что ваша установка mylyn может быть нарушена, попробуйте удалить плагин mylyn и посмотреть, как вы это делаете.

Ответ 5

Когда у меня была аналогичная проблема, я просто удалил интеграцию Mylyn/Java. Я не использую Mylyn, и хотя я знаю, что некоторые считают, что это лучшая вещь после нарезанного хлеба, я никогда не обнаружил, что это не что иное, как способ зачеркнуть мое имя.

Обратите внимание, что вы не хотите отключать "Java-предложения (Task-Focused)", о которых вам сообщалось это сообщение об ошибке. Это также отключит завершение имени.

Ответ 6

У меня была такая же проблема, но мои проблемы возникли, когда я обновляю свой проект с gwt 1.5 до gwt 1.7. Я читаю ваши комментарии, и я просто делаю два изменения. Увеличьте Xmx до -Xmx768m и отмените Java-предложения (Task-Focused) и отметьте только Java-предложения. Это прекрасно работает, так как я сделал это. Надеюсь, это поможет вам.

Ответ 7

У меня была такая же проблема на eclipse 3.5. Обновление функций mylyn разрешило его

Ответ 8

Mylyn (или его помощник по коду) кажется довольно разборчивым в отношении ресурсов в пути сборки.

У меня возникла проблема, и это было вызвано двоичными файлами, которые я случайно добавил в построенный путь Eclipse. Это не вызывает компиляции ошибок или предупреждений, но вызывает исключение при завершении кода, которое вы упоминаете в своем сообщении.

Ответ 9

Настройте поддержку содержимого Eclipses, перейдите "Настройки > Java > Редактоp > Content Assist > Дополнительно". Убедитесь, что "Другие предложения Java" отмечены галочкой. Это может быть проще...: -)

Ответ 10

Один из моих банок был на сетевом ресурсе, и он висел более 10 секунд. Скопировал JAR на локальный диск, обновил мой проект, указав на локальный файл, и время зависания ушло.

Ответ 11

Я столкнулся с той же проблемой.

Я добавил параметр -vm сверху в файле eclipse.ini непосредственно перед параметром -startup. И он решил проблему!

-vm
C:\Program Files\Java\jdk1.7.0_71\jre\bin\server\jvm.dll
-startup

Кстати, моя версия eclipse - это 4.4.1.