Симптоми чудово описують випадок, коли знайдений клас не має асоційованого (або призначеного) джерела.
- Ви можете пов’язати джерела для класів JDK у налаштуваннях> Налаштування> Java> Встановлений JRE . Якщо JRE (не JDK) виявлений як JRE за замовчуванням, який буде використовуватися, то ваші класи JDK не матимуть доданих джерел. Зауважте, що не всі класи JDK надали джерела, деякі з них поширюються лише у двійковій формі.
- Класи із шляху збирання проекту, додані вручну, потрібно вручну приєднати пов'язане джерело. Джерело може знаходитись у файлі zip або jar, у робочій області або у файловій системі. Eclipse сканує поштовий індекс, тому джерела, наприклад, не повинні знаходитись у корені архівного файлу.
- Класи, від залежностей, що надходять від інших плагінів (maven, PDE тощо). У цьому випадку, від плагіна залежить те, як буде надано джерело.
- PDE вимагатиме, щоб кожен плагін мав відповідні пакет XXX.source , який містить джерело плагіна. Більше інформації можна знайти тут і тут .
- m2eclipse може отримати джерела та javadocs для залежностей Maven, якщо вони доступні. Цю функцію слід увімкнути налаштуваннями m2eclipse (параметр був названий чимось на кшталт " Завантажити джерело та javadocs ".
- Для інших плагінів вам потрібно ознайомитися з їх документацією
- Класи, завантажені з вашого проекту, автоматично узгоджуються з джерелами проекту.
Але що робити, якщо Eclipse все ще пропонує вам приєднати джерело, навіть якщо я правильно встановив свої класи та їх джерела:
Це майже завжди означає, що Eclipse знаходить клас з іншого місця, ніж ви очікували. Перевірте шлях пошуку джерела, щоб побачити, де він може отримати неправильний клас. Оновіть шлях відповідно до своїх висновків.
Eclipse взагалі нічого не знаходить при попаданні точки перерви:
Це трапляється, коли шлях пошуку джерела не містить класу, який зараз завантажується під час виконання. Навіть якщо клас знаходиться в робочій області, він може бути невидимим для конфігурації запуску, оскільки Eclipse суворо слідує шляху пошуку джерела і приєднує лише залежності проекту, який на даний момент налагоджений.
Виняток становлять пакети налагодження в PDE . У цьому випадку, оскільки час виконання складається з декількох проектів, яким не потрібно оголошувати залежності один від одного, Eclipse автоматично знайде клас у робочій області, навіть якщо він недоступний у шляху пошуку джерела.
Я не бачу змінних, коли я потрапляю на точку розриву або вона просто відкриває джерело, але не вибирає лінію межі:
Це означає, що під час виконання або JVM, або самі класи не мають необхідної інформації про налагодження. Кожен раз, коли класи складаються, інформація про налагодження може бути додана. Щоб зменшити простір пам’яті класів, іноді ця інформація опускається, що призводить до налагодження такого коду болем. Єдиний ваш шанс - спробувати перекомпілювати з увімкненою налагодженням.
Переглядач джерела Eclipse показує інші лінії, ніж ті, які фактично виконуються:
Іноді може бути показано, що порожній простір також виконується. Це означає, що ваші джерела не відповідають вашій версії виконання класів. Навіть якщо ви вважаєте, що це неможливо, це так, то переконайтеся, що ви встановили правильні джерела. Або час виконання відповідає вашим останнім змінам, залежно від того, що ви намагаєтесь зробити.