Завершення коду Eclipse / Java не працює


594

Я завантажив, розпакував і встановив Eclipse 3.4.2 з деякими плагінами (примітний, EPIC, Clearcase, QuantumDB, MisterQ).

Тепер я знаходжу, коли я редагую Java-проекти, завершення роботи коду не працює. Якщо я набираю String.і натискаю ctrl+, spaceу спливаючому вікні відображається "Немає пропозицій за замовчуванням", а рядок стану внизу відображається "Недоступні завершення".

Будь-які ідеї?


1
Для тих із вас, хто намагається виправити це на Ubuntu, [ось відповідь] [1]. [1]: askubuntu.com/questions/243639/…
синтагма

Відповіді:


1245

Спробуйте відновити параметри за замовчуванням у " Windows > Preferences > Java > Editor > Content Assist > Advanced"

Приклад типу даних, який ви бачите на цьому екрані налаштувань, однак не обов'язково, який у вас є.

налаштування допомоги змісту затемнення

(Від Вадима в цій публікації в блозі "Зміст допоміжних копій у дублі" Eclipse (Mylyn) " :
якщо у вас є дублікати Mylyn, зніміть прапорці з дублікатів, які не містять " (Mylyn)" у своєму імені)

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

Виберіть види пропозицій, що містяться у списку допомоги "за замовчуванням" :

  • Інші пропозиції Java,
  • Пропозиції шаблонів SWT,
  • Пропозиції шаблонів,
  • Введіть пропозиції

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 та збереженийIndexNames.txt
  • Перезапустіть Eclipse та пошук Ctrl+ Tдля типу порушника. Індекси будуть перебудовані.

+1, це працювало для мене. Раніше я також страждав від Eclipse, думаючи, що мій проект знаходився в 1,5, незважаючи на всі варіанти, які сказали інакше, тому він, мабуть, був пошкоджений під час цього випуску.
Філіп Гін

3
Зачекайте, не забудьте. Спробувавши ваш метод, CA працює рівно один раз, потім знову підірветься. Тьфу. Проблема зберігається навіть після відтворення всієї робочої області. Жодне інше рішення тут, здається, не працює ...
Філіп Гін

2
+1. Примітка. Якщо ви спробуєте допомогти вмістом у лямбда-виразі, вона може не підтримуватись вашою версією Eclipse.
Bludwarf

Працювали так добре. Дякую!
Модо

27

Якщо хтось приходить сюди і хоче активувати функцію автозаповнення, перейдіть до

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

Потім у розділі Автоматична активація заповніть тригери автоматичної активації для Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

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


Це може зробити ваше затемнення дуже повільним при великій базі коду.
J-ho

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ярлик.
Kshitiz Sharma

1
Такі ж проблеми виникають і з середовищем робочого столу Cinnamon.
Akkusativobjekt

11

Перевірте кришку свого проекту. Можливо, у вас є два таких jar файли, в яких доступний один клас, або, скажімо, один клас у коді можна переглядати у двох файлах jar. У такому випадку також затемнення перестає допомагати коду, оскільки він повністю заплутаний.

Кращий спосіб перевірити це - перейти до файлу, де допомога не працює, і прокоментувати весь імпорт туди, ніж додавати імпорт по черзі та перевіряти при кожному імпорті, чи працює кодова допомога чи ні. Ви можете легко знайти клас із дублюючими референціями .


9

Жодне з них не працювало на мене.

Я відчував це питання лише один раз у конкретному класі. Що нарешті для мене спрацювало - видалити ображений клас і відтворити його. Проблема вирішена ... таємниця не так вже й багато!


5

Якщо ви встановили Google Toolbar для IE, можливо, ви можете зіткнутися з тією ж проблемою. Тому що, панель інструментів захоплює ярлик ctrl +Space.


5

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

У панелі провідника пакунків клацніть правою кнопкою миші файл і виберіть "Відкрити за допомогою".


4

Я зіткнувся з цією проблемою і витратив години, намагаючись з'ясувати проблему. намагалася слідувати крокам, згаданим у різних відповідях вище, рішення, яке я знайшла, знаходиться в тих же лініях, що й запропонувала Мона, але трохи інше. Намагався додати як коментар до відповіді Мона, але жодного варіанту не було. Проблема з моїм затемненням була, класний шлях якось зіпсувався, і всі банки і залежні проекти були відсутні. після взяття останнього .classpath із сховища він працював чудово.


4

Я також стикаюся з цим питанням, але воно вирішується по-іншому. Кроки, які я виконую, можуть бути корисними для інших.

  1. Клацніть правою кнопкою миші на проект (той, над яким ви працюєте)
  2. Перейдіть до Властивості> Шлях збірки Java> Системна бібліотека JRE
  3. Клацніть Змінити ... праворуч
  4. Виберіть JRE 7

4

Після перевірки конфігурації та її завершення все ще не працює:

  • переконайтеся, що у вас є правильна структура каталогу.

Ви бачите правильний значок біля файлу ?:

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

Він розповість, як файл буде оброблятися Eclipse:

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

Я публікую цю відповідь, коли я мав цю історію з артефактом Вебаппа Мевена. За замовчуванням Maven-WebApp не створює папки для джерел, і я вкладаю свою Java в ресурси, цікавлячись протягом 5 хвилин, що відбувається ... :)


3

Переконайтеся, що ви не відфільтрували багато параметрів у вікні> Налаштування> Java> Зовнішній вигляд> Введіть фільтри

Елементи у цьому списку не відображатимуться у швидкому виправленні, не завершаться автозавершенням або відображатимуться в інших місцях, як-от діалогове вікно відкритого типу.


3

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


3

Можливо, це допомагає іншим людям, які стикаються з тією ж проблемою.

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

Завершення коду також не працювало (і я все ще маю порожні Js у файлах Java), але принаймні я отримав завершення роботи кодом, виконуючи такі дії:

  • клацніть правою кнопкою миші на папці проекту> Властивості> Gradle> Налаштування параметрів робочої області> Java> Редактор> Assist Content> Advanced
  • у верхньому вікні позначте "Пропозиції Java.
  • 2x Застосувати та закрити

2

У моєму випадку Intellisense зник лише за кілька класів в одному проекті. Виявилося, це через відсутність бібліотеки на шляху збірки (хоча вона працювала і раніше).

Тому обов'язково перевірте всі помилки або проблеми в Eclipse і спробуйте дізнатися, чи не може бути відсутність бібліотеки


2

Я зіткнувся з цим, і в кінцевому підсумку я відкрив файл із текстовим редактором, а не редактором java.

Я хотів прокоментувати відповідь https://stackoverflow.com/users/607470/elroy-flynn, але додавання коментаря працює лише після того, як я отримав рейтинг 50? не впевнений, що це WTF ...

Спасибі, Томе


Блок репутації в основному просто так, що люди мають причини отримувати більше, ніж просто мати більше. Оскільки це також є мірою того, наскільки ви причетні та поважні до вас у громаді (тобто як репутація), ви отримуєте більше привілеїв, оскільки отримуєте більше репутації. Ви можете заглянути в екскурсію, щоб отримати додаткові пояснення щодо роботи сайту: stackoverflow.com/tour .
Amndeep7

Це справді лише коментар, відповідь, яку ви згадуєте, вже охоплює питання редактора тексту. Я розумію, якщо ви не хочете його видаляти і все-таки втратити карму.
Номенон

1

Для мене питання було конфліктом між декількома версіями однієї бібліотеки. Допомога Eclipse використовувала старішу версію, ніж maven.

Мені довелося зайти в каталог .m2 і видалити небажану версію lib + перезапустити затемнення.


1

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

Коли файл відкривається з іншого каталогу, працює лише завершення для JRE. Це, наприклад: java.завершує, але junit.ні.


1

На всякий випадок, коли хтось потрапив у відчайдушний момент, коли нічого не працює ... Нам трапилося, що допомога вмісту якось зменшилася, тому жодна пропозиція не з’явилася, просто можна було побачити "Press Ctrl + Space для не-Java ...". Отже, це було лише питання перетягування куточка вмісту, що сприяє розширенню спливаючих вікон.

Я знаю, бентежить. Сподіваюся, це допомагає.

Примітка. Це був сервер Ubuntu з Xfce4, використовуючи Eclipse Oxygen.


1

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

Щойно зі мною це сталося при переході з Оксигену на 3-19 версії eclipse, тому я припускаю, що функція автоматичного завершення не мігрує правильно під час процесу оновлення.

Єдине рішення, яке працювало для мене, - створити нову робочу область eclipse та імпортувати в неї проект / проекти. Це може зайняти кілька хвилин, але воно того варте - порівняння з часом, витраченим на інші рішення ...


Так, для мене я не в змозі переглядати методи java, клацніть переглянути / відкрити декларацію не працює. І це відбувається досить часто, файли класу java фактично стали текстовими файлами. Тому я продовжую видаляти робочу область та імпортувати проект maven, повертаючись до дії за хвилину.
синьонсрідхар


0

Я зіткнувся з цією проблемою з моменту переходу на Eclipse 2019-09. Виходячи з деяких вищенаведених пропозицій, саме це працювало для мене.

Мені довелося перейти до Eclipse -> Налаштування -> Java -> Редактор -> Assist Content Assist -> Advanced.

Java Editor / Content Assist Advanced

Я з'ясував, що якщо я ввімкну будь-яку з ключових пропозицій, Java-нетиповий, Java, Java (орієнтований на завдання) або Java-тип, я зможу використовувати автоматичне завершення. Якщо я їх увімкнув, то не тільки виконав автоматичне завершення роботи, але й перерахував дублюючі методи. Я здогадуюсь, але, ймовірно, я буду використовувати пропозиції типу Java. Буде вдячним будь-яке роз'яснення того, чим відрізняються ці чотири типи.


0

Запуск STS в проектах Java Spring Boot, ось що для мене працює:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.