Подтвердить что ты не робот

Автозаполнение Eclipse не работает в некоторых файлах Java

Я заметил, что автозаполнение не работает в некоторых java файлах в Eclipse. Кроме того, файлы, в которых автозаполнение не работает, отображают полый "J" в качестве значка для файла Java. Файлы, в которых работает автозаполнение, значок для java файла - это заполненный "J"

Мне интересно, может ли кто-нибудь указать, что пошло не так, как пошло, почему изменения в значках и почему подсветка автозаполнения и синтаксиса отключена в файлах с полым значком "J" ?

Спасибо.

Обновление

В основном, я делал то, что предлагал VonC, но Eclipse не обновлялся, поэтому я думал, что предложение VonC не работает после обновления, проблема решена.

4b9b3361

Ответ 1

На этом следующем рисунке MyClass.java имеет полый J, потому что он явно исключен из источников для сборки:

alt text

Не могли бы вы перейти к свойствам проекта, вкладке "Java Build Path", вкладке "Source" и узнать, установлен ли какой-либо фильтр исключения?
Обычно, например, можно определить:

**/Test*.java

чтобы сначала исключить класс unit-test (когда у вас есть большой набор источников и не хотите, чтобы они были представлены классами Test во время автозаполнения или не хотели, чтобы они учитывались при поиске исходного кода).

Ответ 2

Поскольку этот вопрос высоко оценен в Google, я добавлю решение для исправления общей автоматической полной проблемы, а не для "полых J".

Попробуйте Окно (Windows/Linux) или Eclipse (OS X) → Настройки → Java → Редактор → Content Assist → Восстановить значения по умолчанию

и

Content Assist → Дополнительно → Восстановить значения по умолчанию

Ответ 3

некоторые ответы (восстановление по умолчанию) выше не работают для некоторых пакетов пакетов adt с jan '13.

в этих случаях, перейдите к

Окно → Настройки → Java → Редактор → Content Assist → Дополнительно

и отметьте опцию JAVA PROPOSAL.

Ответ 4

Те, у кого есть пустое J, не являются частью пути сборки проекта, поэтому они не могут участвовать в нормальном процессе сборки, и поэтому автозаполнение не будет включено для этих файлов (и другие функции редактора Java!). Вы должны добавить папки с файлами Java, которые должны быть построены в пути сборки, используя раздел "исходный путь" свойств проекта. Доступ к нему можно получить, щелкнув правой кнопкой мыши по проекту в навигаторе проекта/проводнике пакетов и выбрав "Свойства". Подробнее см. http://www.informit.com/articles/article.aspx?p=367962.

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

alt text

Ответ 5

Я справляюсь с проблемой, удаляя файл, если автозаполнение не работает. Перед копированием исходного кода. Затем я воссоздал java файл с тем же именем. Вставлял ранее скопированный исходный код.

Ответ 6

Как дополнение к ответу @VonC, убедитесь, что файлы Java являются частью шаблона включения. У меня был случай, когда процесс сборки создавал проект, в том числе только файлы .js, а не файлы Java:

Shows Eclipse Include without Java files

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

Ответ 7

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

  • Значок Hollow J рядом с файлом Java - не будет создан
  • Обычный значок J рядом с файлом Java - это файл для сборки.

Я ошибся, когда создал webapp artefact. По умолчанию он не создает папку для Java, а для ресурсов. Я ошибочно поставил туда свои источники. Посмотрите - см. Разницу.

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

Ответ 8

Не восстанавливать значения по умолчанию или мой путь сборки (файл уже был в каталоге пакетов с другими файлами, в которых выполнялась автозаполнение). Исправить для меня было закрыть файл явно (щелкните правой кнопкой мыши по имени файла на вкладке) и снова откройте. Интересно, что просто перезапуск Eclipse тоже не работал.