Eclipse / условная точка останова приводит к BreakpointException - PullRequest
11 голосов
/ 02 сентября 2011

Я хочу отладить статический внутренний класс, который на самом деле называется 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» на тот случай, если у кого-то возникнет такая же проблема.

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

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

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

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

2 голосов
/ 26 сентября 2011

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

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

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

1 голос
/ 21 сентября 2011

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

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

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

Косвенная ссылка из необходимого файла .class

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

НТН,

Джеймс

...