Симптомы прекрасно описывают случай, когда найденный класс не имеет связанного (или назначенного) источника.
- Вы можете связать источники для классов JDK в Предпочтения> Java> УстановленоJRE .Если JRE (не JDK) определяется как используемый по умолчанию JRE, то ваши классы JDK не будут иметь подключенных источников.Обратите внимание, что не все классы JDK предоставляют источники, некоторые из них распространяются только в двоичной форме.
- Классы из пути сборки проекта, добавленные вручную, требуют ручного присоединения связанного источника.Источник может находиться в файле zip или jar, в рабочей области или в файловой системе.Eclipse просканирует zip-архив, поэтому ваши источники не обязательно должны находиться в корне файла архива, например.
- Классы, из зависимостей, поступающих от других плагинов (maven, PDE и т. Д.).В этом случае это зависит от плагина, как источник будет предоставлен.
- PDE потребует, чтобы каждый плагин имел соответствующий пакет XXX.source , который содержит источник плагина.Дополнительную информацию можно найти здесь и здесь .
- m2eclipse может извлекать источники и javadocs для зависимостей Maven, если они доступны.Эта функция должна быть включена m2eclipse предпочтения (параметр был назван что-то вроде " Скачать исходный код и javadocs ".
- Для других плагинов, вам нужно обратиться к ихдокументация
- Классы, загружаемые из вашего проекта, автоматически сопоставляются с источниками из проекта.
Но что, если Eclipse по-прежнему предполагает, чтовы присоединяете источник, даже если я правильно установил свои классы и их источники:
Это почти всегда означает, что Eclipse находит класс в другом месте, чем вы ожидаете. Проверьте путь поиска источника, чтобы увидеть, где онможет получить неправильный класс. Обновите путь в соответствии с вашими выводами.
Eclipse вообще ничего не находит, когда достигается точка останова:
Это происходит, когдау вас исходный путь поиска не содержит класс, который в данный момент загружен во время выполнения. Даже если класс находится в рабочей области, он может быть невидим дляЗапустите конфигурацию, поскольку Eclipse строго следует исходному пути поиска и присоединяет только зависимости проекта, который в данный момент отлаживается.
Исключением являются пакеты отладки в PDE .В этом случае, поскольку среда выполнения состоит из нескольких проектов, которым не нужно объявлять зависимости друг от друга, Eclipse автоматически найдет класс в рабочей области, даже если он недоступен в исходном пути поиска.
Я не вижу переменные, когда я достигаю точки останова или она просто открывает источник, но не выбирает линию точки останова:
Это означает, что во время выполнения либоJVM или сами классы не имеют необходимой отладочной информации.Каждый раз, когда классы компилируются, можно добавлять отладочную информацию.Чтобы уменьшить объем памяти классов, иногда эта информация опускается, что затрудняет отладку такого кода.Ваш единственный шанс - попытаться перекомпилировать с включенной отладкой.
Средство просмотра исходного кода Eclipse показывает строки, отличные от тех, которые фактически выполняются:
Иногда может показывать это пустое пространствотакже выполняется.Это означает, что ваши источники не соответствуют вашей версии классов во время выполнения.Даже если вы считаете, что это невозможно, это так, поэтому убедитесь, что вы настроили правильные источники.Или время выполнения соответствует вашим последним изменениям, в зависимости от того, что вы пытаетесь сделать.