Автозаполнение Eclipse не работает в некоторых файлах Java - PullRequest
31 голосов
/ 06 марта 2010

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

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

Спасибо.

обновление

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

Ответы [ 8 ]

103 голосов
/ 22 сентября 2010

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

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

также

Помощник по содержимому -> Дополнительно -> Восстановить значения по умолчанию

18 голосов
/ 10 января 2013

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

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

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

и отметьте опции ПРЕДЛОЖЕНИЯ JAVA.

11 голосов
/ 06 марта 2010

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

alt text

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

**/Test*.java

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

10 голосов
/ 06 марта 2010

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

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

alt text

2 голосов
/ 08 января 2012

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

1 голос
/ 11 марта 2014

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

Shows Eclipse Include without Java files

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

0 голосов
/ 28 августа 2017

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

0 голосов
/ 11 января 2017

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

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

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...