Eclipse/условная точка останова в BreakpointException

Я хочу отлаживать статический внутренний класс, который на самом деле является Callable. Всякий раз, когда я пытаюсь установить условную точку останова в Eclipse, я получаю ошибку контрольной точки:

Тип com.sun.source.tree.Tree$Kind не может быть разрешен. это косвенно ссылаются на требуемые файлы .class.

Что вызывает эту ошибку? Является ли это ошибкой в ​​классе/пакете, который использует com.sun.source.tree.Tree$Kind, но не предоставляет его? Как узнать, какой класс он есть? Как его разрешить?


Примерное выражение, которое должно быть правильным: return mRtx.getNode().getNodeKey() == 74;

Я изменил его на mRtx.getNode().getNodeKey() == 74, но по-прежнему ту же ошибку. Недавно я нашел ошибку и просто использовал:

 if (mRtx.getNode().getNodeKey() == 74) {
     System.out.println("bla");
 }

и установите "нормальную" точку останова в инструкции "sysout" на случай, если у кого-то будет такая же проблема.

Ответ 1

Я не уверен, как бы я воспроизвел его, так как ваше описание не очень много говорит.

Пакет com.sun.source.tree включен в tools.jar, который является частью JDK, но не JRE, поэтому убедитесь, что вы запустите свой Eclipse в JDK (переменная JAVA_HOME?), возможно, попробуйте настроить проекты JRE на папку JDK.

Я также думаю, что API компилятора был представлен на Java 6, поэтому проверьте, не используете ли вы более низкую версию.

Ответ 2

Возможно, вам стоит попробовать отредактировать поиск исходного кода отладчика.

Чтобы сделать это, перейдите в режим отладки, в представлении отладки (где обычно отображается стек) щелкните правой кнопкой мыши по завершенному прогону и выберите "Изменить поиск источника...".

Затем вы можете добавить место для поиска. В этом случае вы должны добавить файл tools.jar, который находится в папке jre.

Ответ 3

Компилятор не может найти тип, то есть корневую проблему, но, по моему мнению, это должна быть только ошибка времени компиляции, но, как следствие, из того, что я прочитал, это ошибка времени выполнения. Это верно?

Вот несколько советов:

http://java.syntaxerrors.info/index.php?title=Cannot_resolve_type

Косвенно ссылается на требуемый файл .class

Возможно, вы могли бы разместить больше кода или использовать "control + T" в Eclipse в классе, чтобы посмотреть на иерархию типов, я хотел бы знать, к каким ссылкам относятся другие классы.

НТН,

Джеймс