Eclipse - Источник не найден

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

Я разрабатываю плагин для OpenFire, и когда я устанавливаю точку останова в своем источнике плагина, Eclipse сообщает "Источник не найден". JAR построен отдельно от сборки сервера OpenFire. Я попытался добавить JAR и указать каталог исходного кода, но не кубик.

В этом процессе я следую: когда я ударил свою точку останова, я нажимаю "Изменить путь поиска источника", нажав "Добавить", "Библиотека Java", "Библиотека пользователей", "Пользовательские библиотеки", добавив мою библиотеку (попробовал оба "Добавить" JARs "и" Add External JARs "), а затем укажите папку, содержащую исходный код. Я также пробовал:

  • Добавление источника, выбрав "Каталог файловой системы" вместо "Библиотека Java"
  • Добавьте его, выбрав "Папка рабочей области"
  • В Project Explorer добавление источника для моего плагина к пути сборки Java
  • В Project Explorer, добавив мой JAR в качестве библиотеки и указав ссылку "Источник"

Заранее благодарим за любые предложения.

Ответ 1

Ну, оказывается, решение было противным. Когда рекомендации Balder не работали, я пробовал отлаживать один из плагинов OpenFire и работал отлично. Затем я создал новый плагин с нуля и не делая ничего, кроме добавления источника в проект (щелкните правой кнопкой мыши по проекту → Создать → Исходная папка), он также отлично справился. Я понятия не имею, почему Eclipse отказывается видеть исходный код моего исходного плагина, но я переместил весь свой код и библиотеки в новый плагин, и отладка работает должным образом.

Ответ 2

Лично у меня нет хорошего опыта в Eclipse JDT, когда вы добавляете исходную папку в момент, когда она попадает в точку останова. То, что я всегда предпочитаю делать, добавляет исходную папку перед отладкой:

  • Выбрать проект/Свойства/Библиотеки
  • Выберите свою библиотеку и "отредактируйте..." исходное вложение
  • Выберите либо соответствующую исходную папку, либо zip/jar, содержащую пакет

После этого вы сможете открыть исходные файлы в виртуальной папке "Связанные библиотеки" (непосредственно под папкой "Библиотека JRE" внутри проекта) или при открытии ссылки в связанный файл класса из редактора JDT. Если вы можете получить доступ к источнику, то вы также сможете как минимум остановиться в точке разрыва и увидеть соответствующий источник.

В противном случае вам придется снова проверить, если исходная папка действительно действительна: исходная папка или исходный архив должны содержать папку с именем корневого пакета библиотеки (например, по умолчанию Java "src.zip", внутри папки JDK также имеется соответствующая папка "java" в ее корне). Если вы сомневаетесь, извлеките архив и выберите родительскую папку интересующего вас пакета - иногда исходные архивы могут быть беспорядочными или несовместимыми с JDT.

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

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

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

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

Ответ 3

У меня была эта очень раздражающая проблема в течение долгого времени, но я наконец смог ее решить. В моем случае исключительная ситуация нулевого указателя была выдана где-то в функции Java Transformer.IsRuntimeCode(ProtectionDomain).

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

Чтобы этого не случилось, я:

 1. Clicked on the "Breakpoints" window at the bottom of the debugging
    screen
 2. Right clicked "NullPointerException"
 3. Unchecked "Caught"

Это не позволило отладчику приостановить выполнение программы во время перехваченного текста NullPointerException.alt

альтернативный текст http://www.SharpDetail.com/p/so_breakpoint.gif

И это еще один, как:

Затмение не падает. Вы пытаетесь войти в метод, в котором eclipse не знает, где найти исходные файлы (*.java), и информирует вас об этом. Вот как сказать затмение, где искать. Идти к

Window->Preferences->Java->Installed JREs,select the JRE you are using and click Edit.

Там выберите все файлы jar в списке, который вы видите, и нажмите Source Attachment....

В появившемся окне выберите fille src.zip, который находится в вашей папке JDK (если вы не сняли флажок при установке JDK). На машине я сейчас нахожусь, то есть

C:\Program Files\Java\jdk1.7.0_07\src.zip.

Сохраните все свои изменения (возможно, перезапустите eclipse), и вы больше не увидите эту ошибку.

Ответ 4

Много раз вы помещали jar файлы в eclipse IDE в качестве библиотек-ссылок при загрузке бинарной версии приложения. Обычно это делается путем настройки пути сборки. Но двоичный файл не имеет исходных файлов. У вас есть двоичная версия и исходная версия приложения.

Один простой способ - загрузить исходные библиотеки, которые вы также используете maven для создания проекта. Храните что-то, может быть внутри рабочего пространства вашего проекта.

Теперь, видя файл класса (из eclipse, jar exploded), вы можете увидеть, что источник не найден, отлично... есть кнопка ниже и нажмите на нее, откроется новое окно и там выберите добавление внешней папки.

Ссылка на папку src загруженного вами источника (а не на двоичный файл) и хранится где-то выше, и он отобразит данные этого класса.

Ответ 5

Я исправил эту проблему, выполнив следующее:

Нажмите в меню Window - Preferences - Debug - Step Filtering и проверьте все пакеты, как показано на рисунке.

(Ступенчатая фильтрация)

Затем снова отладьте ваш проект и все.

С наилучшими пожеланиями,