Eclipse / Java завершение кода не работает

596

Я скачал, распаковал и установил Eclipse 3.4.2 с некоторыми плагинами (примечательно, EPIC, Clearcase, QuantumDB, MisterQ).

Теперь я нахожу, что когда я редактирую проекты Java, завершение кода не работает. Если я печатаю String.и нажимаю ctrl+, spaceвсплывающее окно показывает «Нет предложений по умолчанию», а строка состояния внизу показывает «Нет доступных завершений».

Любые идеи?

Роберт Браун
источник
1
Для тех из вас, кто пытается это исправить в Ubuntu, [вот ответ] [1]. [1]: askubuntu.com/questions/243639/…
синтагма

Ответы:

1247

Попробуйте восстановить параметры по умолчанию в ' Windows > Preferences > Java > Editor > Content Assist > Advanced'

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

настройка содержания затмения

(От Вадима в этом сообщении в блоге «Дубликаты Content Assist в Eclipse (Mylyn)» :
если есть дублированные записи Mylyn, снимите флажки с дублирующих записей, которые не содержат « (Mylyn)» в своем имени)

Страница справки Eclipse определяет список по умолчанию для восстановления:

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

  • Другие предложения Java,
  • Предложения по шаблону SWT,
  • Шаблонные предложения,
  • Тип предложения
VonC
источник
3
Понятия не имею, как это изменилось в моей среде - я, конечно, этого не делал, но ваше решение работает! Спасибо.
pstanton
71

Я добавляю ответ здесь, если кто-то еще найдет это в Google. Те же симптомы; другая проблема. Для меня кеши типа стали испорченными.

От http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • Выйти из Затмения
  • Перейдите в рабочую область / .metadata / .plugins / org.eclipse.jdt.core
  • Удалить * .index и saveIndexNames.txt
  • Перезапустите Eclipse и найдите « CtrlTтип ошибки. Индексы будут перестроены.
hoipolloi
источник
+1, это сработало для меня. Я также ранее страдал от Eclipse, думая, что мой проект был в 1.5, несмотря на то, что все варианты говорили иначе, поэтому он должен был быть поврежден во время этой проблемы.
Филипп Гуин
3
Подожди, неважно. После попытки вашего метода CA работает ровно один раз, а затем снова взрывается. Тьфу. Проблема сохраняется даже после воссоздания всего рабочего пространства. Никакое другое решение здесь, кажется, не работает ...
Филип Гуин
2
+1. Примечание: если вы попробуете помочь с содержимым в лямбда-выражении, оно может не очень хорошо поддерживаться вашей версией Eclipse.
Bludwarf
Сработало так хорошо. Спасибо!
Модо
27

Если кто-то приходит сюда и хочет активировать функцию автозаполнения, перейдите к

Preferences -> Java -> Editor -> Content Assist.

Затем в разделе « Автоматическая активация » заполните триггеры автоматической активации для Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

введите описание изображения здесь

Хоа Ву
источник
Это может сделать ваше затмение очень медленным с большой базой кода.
J-хо
19

Для тех, кто использует Xfce + с активированным плагином IBus, может возникнуть конфликт клавиш.

Смотрите больше информации в моем блоге: http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

ОБНОВЛЕНИЕ :

как подсказывает комментарий @ nhahtdh, добавив еще немного информации, чтобы ответить прямо: плагин IBus в Xfce по умолчанию использует Ctrl+ Spaceярлык для переключения раскладки клавиатуры. Чтобы изменить его, перейдите к: Параметры и измените его на то, что вы предпочитаете.

Петр Буткович
источник
3
Пожалуйста, включите основные части вашего блога здесь, на случай, если он станет недоступен в будущем.
nhahtdh
2
Та же проблема в LXDE. Перейти к Preferences-> Keyboard Inputи удалить Next input methodярлык.
Кшитиз Шарма
1
Те же проблемы возникают с настольной средой Cinnamon.
Akkusativobjekt
11

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

Лучший способ проверить это - перейти к файлу, в котором ассистент не работает, и прокомментировать там все операции импорта, чем добавлять импорт по одному и проверять при каждом импорте, работает код-ассистент или нет. Вы можете легко найти класс с дублирующимися ссылками. ,

Mona
источник
9

Ничто из этого не помогло мне.

Я испытывал эту проблему только в одном конкретном классе. В конечном итоге у меня получилось удалить класс-нарушитель и воссоздать его. Проблема решена ... загадки не так много!

Марк
источник
5

Если вы установили панель инструментов Google для IE, возможно, вы столкнулись с той же проблемой. Потому что панель инструментов захватить ярлык Ctrl +Space.

Shashi
источник
5

У меня была эта проблема и, как @Marc, только в определенном классе. Я обнаружил, что мне нужно назначить Open With = Java Editor. Будучи новичком в Eclipse, я даже не осознавал, что использую простой текстовый редактор.

В проводнике пакетов щелкните файл правой кнопкой мыши и выберите «Открыть с помощью».

Элрой Флинн
источник
4

Я столкнулся с этой проблемой и часами пытался ее выяснить. попытался выполнить шаги, упомянутые в разных ответах выше, решение, которое я нашел, находится в тех же строках, что и Мона, но немного отличается. Попытка добавить в качестве комментария к ответу Моны, но не было возможности. Проблема с моим затмением была, classpath каким-то образом был поврежден, и все jar-файлы и зависимые проекты отсутствовали. после получения последнего .classpath из репозитория все работало нормально.

Нирмал Мангал
источник
4

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

  1. Щелкните правой кнопкой мыши по проекту (тот, над которым вы работаете)
  2. Перейдите в Свойства> Путь сборки Java> Системная библиотека JRE
  3. Нажмите Редактировать ... справа
  4. Выберите JRE 7
asifaftab87
источник
4

После того, как вы проверили свою конфигурацию и завершение не работает

  • убедитесь, что у вас есть правильная структура каталогов.

Вы видите правильный значок рядом с файлом ?:

введите описание изображения здесь

Он расскажет вам, как файл будет обрабатываться Eclipse:

введите описание изображения здесь

Я публикую этот ответ, поскольку у меня была эта история с артефактом веб-приложения Maven. По умолчанию Maven-WebApp не создает папку для источников, и я помещаю свою Java в ресурсы, задаваясь вопросом, что происходит в течение 5 минут ... :)

Витольд Качурба
источник
3

Убедитесь, что вы не отфильтровали много параметров в Окне> Настройки> Java> Внешний вид> Типовые фильтры

Элементы в этом списке не будут отображаться в режиме быстрого исправления, автозаполнения или появляться в других местах, например в диалоговом окне «Открыть тип».

Аарон
источник
3

Другое решение, которое сработало для меня, это перейти на Java -> Appearence -> Type Filters и отключить всевведите описание изображения здесь

user1889970
источник
3

Может быть, это помогает другим людям, которые сталкиваются с той же проблемой.

Моя настройка: старый проект Gradle (версия Gradle 2.12), сделанный кем-то другим, импортированный с помощью мастера импорта Gradle в STS (Eclipse Oxygen.2 (4.7.2)).

Завершение кода также не работает (и у меня все еще есть пустые J в файлах Java), но, по крайней мере, я получил завершение кода, выполнив:

  • щелкните правой кнопкой мыши папку проекта> Свойства> Gradle> Настройка параметров рабочего пространства> Java> Редактор> Помощник по содержимому> Дополнительно
  • Отметьте «Предложения Java в верхнем окне.
  • 2x Применить и закрыть
Togepi
источник
2

В моем случае Intellisense исчез только в нескольких классах в одном проекте. Оказалось, это из-за отсутствия библиотеки в пути сборки (хотя раньше это работало).

Поэтому обязательно проверьте все ошибки или проблемы в Eclipse и попробуйте найти, если библиотека может отсутствовать

arnehehe
источник
2

Я столкнулся с этим, и все закончилось тем, что я открывал файл с помощью текстового редактора, а не редактора Java.

Я хотел прокомментировать ответ https://stackoverflow.com/users/607470/elroy-flynn, но добавить комментарий можно только после того, как у меня рейтинг 50? не уверен, что это WTF ...

Спасибо том

Том Орси
источник
Блок репутации в основном состоит в том, что у людей есть причины получать больше, чем просто иметь больше. Так как это также служит мерой того, насколько вы вовлечены и уважаемы в сообществе (то есть как репутация), вы получаете больше привилегий, когда вы получаете больше репутации. Возможно, вы захотите взглянуть на тур, чтобы узнать больше о том, как работает сайт: stackoverflow.com/tour .
Amndeep7
Это на самом деле просто комментарий, ответ, который вы упоминаете, уже охватывает проблему текстового редактора. Я понимаю, если ты не хочешь удалить это и потерять карму.
Нумен
1

Для меня проблема была в конфликте между несколькими версиями одной и той же библиотеки. Eclipse Assist использовал более старую версию, чем Maven.

Мне пришлось перейти в каталог .m2 и удалить ненужную версию lib + перезапустить eclipse.

Илинка
источник
1

В Eclipse Neon возникают проблемы при редактировании файла, который не принадлежит каталогу проекта . Когда я копирую тот же файл в корневой каталог проекта, даже не в каталог src, завершение начинает работать.

Когда файл открывается из другого каталога, работает только завершение для JRE. Это например: java.завершает, но junit.не делает.

Jarekczek
источник
1

На всякий случай, если кто-нибудь попадет в отчаянную точку, где ничего не работает ... Нам случилось, что помощник по контенту каким-то образом сократился, поэтому никаких подсказок не было, просто можно было увидеть «Нажать Ctrl + Пробел для не Java ...» Таким образом, для увеличения всплывающего окна достаточно было просто перетащить угол вспомогательного содержимого.

Я знаю, неловко. Надеюсь, поможет.

Примечание: это был сервер Ubuntu с Xfce4, использующий Eclipse Oxygen.

Ше
источник
1

Для тех, кто использует последнюю версию 3-19 eclipse:

Это произошло со мной при обновлении с Oxygen до версии 3-19 eclipse, поэтому я предполагаю, что функция автозаполнения не корректно мигрировала во время процесса обновления.

Единственное решение, которое мне помогло, - это создать новое рабочее пространство Eclipse и импортировать в него проект (ы). Это может занять несколько минут, но оно того стоит - по сравнению с временем, потраченным на другие решения ...

Наор Бар
источник
Да, для меня, я не могу просмотреть методы Java, нажмите кнопку обзора / открыть объявление не работает. И это происходит довольно часто, файлы классов Java фактически превратились в текстовые файлы. Поэтому я продолжаю удалять рабочее пространство и импортирую проект maven, снова возвращаясь к действию через минуту.
signonsridhar
0

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

Мне пришлось перейти в Eclipse -> Настройки -> Java -> Редактор -> Помощник по содержимому -> Дополнительно.

Java-редактор / Content Assist Advanced

Я обнаружил, что если я включу любое из предложений связывания ключей, Java Non-Type, Java, Java (Task-Focused) или Java Type, то я смог использовать автозаполнение. Если я включил их все, то не только автоматически завершил работу, но я перечислил повторяющиеся методы. Я предполагаю, но я, вероятно, буду использовать предложения типа Java. Любое разъяснение того, что отличается для этих четырех типов, будет оценено.

Билл Сни
источник
0

Запуск STS в проектах Java Spring Boot, вот что работает для меня:

введите описание изображения здесь

theRiley
источник