2011-09-02 12 views
11

Chcę debugować statyczną wewnętrzną klasę, która jest faktycznie wywoływalna. Ilekroć próbuję ustawić warunkową przerwania w Eclipse pojawia się błąd breakpoint:Eclipse/warunkowy punkt przerwania powoduje wyjątek BreakpointException

The type com.sun.source.tree.Tree$Kind cannot be resolved. It is indirectly referenced from required .class files.

co jest przyczyną tego błędu? Czy jest to błąd w klasie/pakiecie, który używa com.sun.source.tree.Tree$Kind, ale nie zapewnia go? Jak mogę się dowiedzieć, która to klasa? Jak mogę to rozwiązać?


Przykładem wyrażenie, które powinny być poprawne jest: return mRtx.getNode().getNodeKey() == 74;

Zmieniłem go mRtx.getNode().getNodeKey() == 74 ale nadal ten sam błąd. Ostatnio znalazłem błąd i po prostu stosować:

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

i ustawić punkt przerwania „normalnej” na „sysout” oświadczenie tylko w przypadku ktoś ma ten sam problem.

+1

Czy możesz wypełnić pytanie, aby wyjaśnić je we wszystkich zajęciach, o których wspomniałeś? Jakie jest prawdziwe pytanie? –

+0

Proszę wspomnieć tutaj, która maszyna JVM służy do uruchamiania środowiska Eclipse i uruchamiania debugowanego oprogramowania. –

Odpowiedz

1

Kompilator nie może znaleźć typu, to jest problem główny, ale w moim myśleniu powinien to być tylko błąd czasu kompilacji, ale przez implikację z tego, co przeczytałem, jest to błąd czasu wykonywania. Czy to jest poprawne?

Oto kilka wskazówek:

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

Indirectly referenced from required .class file

Może mógłbyś pisać więcej kodu lub naciśnij „Ctrl + T” w Eclipse na klasy, aby spojrzeć na hierarchii typu, ja chciałbym wiedzieć, do jakich klas się odwołują.

HTH,

James

+0

Dzięki za linki (+50). – DaveFar

+0

Cieszę się, że mogłem pomóc i wiele dzięki! –

2

Może powinieneś spróbować edytować źródłowy odnośnika debugger jest.

Aby to zrobić, przejdź do perspektywy debugowania, w widoku debugowania (tam, gdzie zwykle wyświetlany jest stos) kliknij prawym przyciskiem myszy zakończony wiersz i wybierz polecenie "Edytuj wyszukiwanie źródła ...".

Następnie można dodać miejsce do wyszukania. W takim przypadku powinieneś dodać plik tools.jar znajdujący się w folderze jre.

+0

Dziękuję. To rozwiązało problem dla mnie.Prosi tylko o "wybranie" 2 (niezarządzane źródło to inne źródło, które jest połączone ze źródłem w konfiguracji projektu, ale nie jest zawarte w ścieżce uruchamiania), ale można nim zarządzać. –

3

Nie jestem pewien, w jaki sposób mógłbym go odtworzyć, ponieważ twój opis nie jest dokładnie powiedziany.

Pakiet 01.jpg jest częścią JDK, ale nie JRE, więc upewnij się, że uruchomiłeś Eclipse w JDK (zmienna JAVA_HOME?), Może spróbuj ustawić JRE projektów w folderze JDK.

Też myślę, że API kompilatora został wprowadzony w Javie 6, więc sprawdź, czy nie korzystasz z wersji niższej.

+0

Dzięki za odpowiedź (+1). Jeśli jamesDrinkard nie pokazał mi wspaniałej strony http://java.syntaxerrors.info, dałbym ci +50. – DaveFar

+0

Na moim komputerze musiałem ręcznie dodać tool.jar z mojej instalacji javy (mimo że korzystałem z JDK): Okno> Preferencje> Zainstalowane JRE, wybierz JDK, wciśnij "edytuj" i dodaj tools.jar z podfolderu lib, jeśli jeszcze nie istnieje. – evandor

Powiązane problemy