2009-05-18 2 views
6

Если вы нажмете Shift + Ctrl + T или выберите «Навигация»> «Открыть тип ...», вы получите диалоговое окно «Открыть тип» для быстрого перехода к известному классу. Когда вы начинаете вводить имя, только классы, для которых совпадение имен остается видимым. Таким образом, вы можете найти класс, который вы знаете, имя очень быстро, не просматривая дерево проводника пакетов.Eclipse: Обновление известных типов в Java-проекте

Это работало отлично для меня до сегодняшнего утра. Внезапно для нескольких моих проектов я вижу только типов типов. Конечно, я пробовал очевидные шаги по обновлению проектов, очистке проектов, перестройке проектов, перестройке проектов извне, но все безрезультатно. Это немного странно, поскольку типы известны в других местах. Если я добавлю оператор импорта, Eclipse не жалуется, что он не знает тип, и я могу Ctrl-Click через типы, чтобы добраться до их файла. Однако навигационная система ничего не знает о них.

В прошлом, когда InteliJ использовал это для меня, я бы поискал его файлы кеша и удалял их, заставляя их перестраивать. У Eclipse есть что-то подобное, что я могу сделать (я новичок Eclipse)? Я использую Eclipse 3.4.2, и у меня он настроен на не удалять файлы на чистом (потому что наш фактический процесс сборки помещает файлы в выходные каталоги, которые я не хочу, чтобы Eclipse сбрасывал).

ответ

16

Вы пытались закрыть и снова открыть проект? В памяти хранятся только типы открытых проектов, и обновление происходит, когда вы Shift + Ctrl + T впервые открываете новый проект.

Редактировать для добавления: Ctrl + Shift + R также отображает типы (вместе со всем остальным), но также поддерживает функцию Camel-case для быстрого поиска типов Java.

+0

Это похоже на трюк. Одна странная вещь, однако, я остановился и перезапустил Eclipse во время этого процесса - есть ли что-то другое в закрытии проекта? Еще одно примечание - по крайней мере, в 3.4.2 Ctrl-Shift-T также поддерживает нотацию верблюда (и ограничивает типы, которые могут быть приятными). – sfitts

+0

У Eclispe есть некоторые неприятные изъяны, но большинство из них легко фиксируются, когда вы знаете, что делать, thx! О, «Open Resource» ctrl + shift + R на самом деле очень хорош, поскольку он кажется ограниченным текущими ресурсами проекта, меньшим списком параметров! –

3

Попробуйте запустить eclipse с флагом -clean, вы можете добавить его в свой eclipse.ini, который можно найти в том же каталоге, что и eclispe.exe, или если вы запустите eclipse, используя скрипт bat или shell, добавьте его как аргумент запуска, например eclipse -clean.

Чистое будет убирать ваше рабочее пространство и должно заставить Jcl затмить JDT для повторного использования типов. У Ive была проблема с файлами .snap (кажется, что они созданы при грязных остановках), которые, похоже, повреждают мое рабочее пространство, пока я их не очистил, недавно Eclipse потерял класс Object !! сделаны для некоторых интересных ошибок!

+0

Спасибо за информацию. Я собираюсь добавить это, чтобы просто быть в безопасности. – sfitts

-1

(Внимание: Shameless маркетинг вперед)

Если вам нравится эта функция, то вы любили бы nWire. nWire позволяет, среди прочего, быстро искать не только типы, но и любые возможные элементы Java, такие как метод или поле. Он также использует вид навигатора, который является немодальным. После поиска вы можете увидеть ассоциации классов очень быстро и просто. Выезд the video on our site.

1

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

В любом случае, нажав «Отменить рабочий набор» и bam, я снова смогу найти свои классы. Думаю, я бы добавил это здесь, так как другие могут совершить ту же ошибку.

+0

«Отменить рабочий набор», который является самым безопасным, простым и простым ответом. Взял меня так долго, чтобы увидеть, что ты, похоже, больше не вокруг: /, но все равно! –

+0

Не только рабочий комплект может вызвать это. Я не смог открыть какой-либо класс из java. * И javax. * Пакетов, пока я не посмотрел в меню «Фильтры типов». BTW import не работал ether.Eclipse продолжал показывать ошибку, класс не найден. Это было не весело. – andronix

6

Закройте eclipse и удалите любые .index-файлы и файл savedIndexNames.txt в рабочей области/.metadata/.plugins/org.eclipse.jdt.ядро когда затмение перезапуск будет rebuildl всего индекса для Ctrl + T

0

Это работало для меня -

  1. Выберите свой проект в Package Explorer
  2. Нажмите F5 или правую кнопку мыши и выберите Refresh
0

Я использовал «-clean» в качестве первой строки в eclipse.ini (версия Juno) и работал как шарм.

0

I'v попробовал все ответы, и у меня все еще была проблема. Затем я попробовал это:
Я удалил проект (это проект maven) и повторно импортировал его. На этот раз я убедился, что я установил флажок «Добавить проект (ы) в рабочий набор». После этого Eclipse смог найти классы в этом проекте.

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