2008-10-10 6 views
5

W Eclipse (Ganymede) Debuguję kod, który używa Apache Commons HttpClient i chciałbym wprowadzić kod HttpClient. Pobrałem kod źródłowy i próbowałem go dołączyć w normalny sposób (kliknij CTRL na nazwie metody i użyj przycisku Dołącz źródło). Próbowałem dołączyć zarówno jako zewnętrzny plik i zewnętrzny folder bez powodzenia. Dołączyłem wcześniej źródło bez żadnych problemów i mogę z powodzeniem przejść do kodu źródłowego Hibernate.Dołącz problem źródłowy do Eclipse'a

Próbowałem nawet edytować plik .classpath bezpośrednio, aby ręcznie dodać ścieżkę źródłową. Wciąż nie ma szczęścia. Odświeżanie projektu, robienie czystych kompilacji, zamykanie i ponowne otwieranie Eclipse nie rozwiązuje problemu. Frustrating, Eclipse nie dostarcza żadnego komunikatu o błędzie; po prostu nie dołącza źródła.

Oto wpisy w .claspath:

<!-- Hibernate. Works --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/hibernate.jar" sourcepath="D:/Data/Download/hibernate-3.2.2.ga/hibernate-3.2/src"/> 

<!-- Commons HttpClient. Will not attach --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/commons-httpclient.jar" sourcepath="D:/Data/Download/commons-httpclient-3.1/src/java"/> 

Próbowałem zmienić ścieżkę do folderu D: /Data/Download/commons-httpclient-3.1/src i to nie działa.

Struktura katalogu jest:

D 
    Data 
    Download 
     commons-httpclient-3.1 
     src 
      java 
      org 
       apache 
       commons 
        httpclient 
        AutoCloseInputStream.java 
        ... (and so forth) 
+0

Czy można ponownie sformatować wpisy .classpath, aby były widoczne (po znacznikach)? –

Odpowiedz

6

Spróbuj skierować go bezpośrednio do katalogu zawierającego pakiet najwyższego poziomu, "D: /Data/Download/commons-httpclient-3.1/src/java". Dla mnie działało tworzenie nowego pliku zip src zawierającego folder "org" i wszystko poniżej.

Oto mój wpis .classpath, (który pracuje dla mnie) w przypadku pomaga:

<classpathentry kind="lib" path="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1.jar" sourcepath="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1-src.zip"/> 
2

Spróbuj zamocować src.zip zamiast rozpakowanym src?

+0

Najpierw wypróbowałem to. Dzięki. –

+0

Jak dziwnie! Powodzenia. – JeeBee

+0

Dzięki, myślę, że mógłbym spróbować otworzyć projekt w Europie. –

2

Spróbuj dodać go do ścieżki źródłowej konfiguracji uruchamiania.

1

Dołączanie źródeł to nie wszystko, czego potrzeba, aby wejść do biblioteki w ścieżce klas; biblioteka ta musi być również skompilowana z symbolami debugowania. Zwykle nie stanowi to problemu, ponieważ większość bibliotek Java jest skompilowana i dystrybuowana w taki sposób, ale jak już stwierdzono, niektóre z nich nie są.

Warto zauważyć, że można rzeczywiście wejść do bibliotek zewnętrznych, nawet bez dołączonego źródła, po prostu nie można zobaczyć źródeł liniowych (wszystkie informacje debugowania wciąż działają).

Możesz "rozwiązać" ten problem, kompilując niestandardową wersję Commons HttpClient (nie jest to zbyt trudne) lub po prostu pomiń cały pomysł "krok do biblioteki". Jako ogólna praktyka rozwojowa, wchodzenie do bibliotek stron trzecich rzadko dostarcza użytecznych informacji. Robiłem to może raz lub dwa razy w ciągu ostatnich dziesięciu lat, ani czas nie przybliżył mnie do rozwiązania dylematu.

4

Znalazłem, że czasami wskazaniu katalogu możesz założyć była prawidłowa, a następnie nadal stwierdza, że ​​nie może znaleźć pliku w dołączonym źródle bla bla bla.

W tych czasach zdałem sobie sprawę, że ostatnim elementem ścieżki było "src". Po prostu usunięcie tego elementu ścieżki (a tym samym wskazanie jednego poziomu powyżej rzeczywistej ścieżki, w której znajduje się folder "org" lub "com") w magiczny sposób działa.

W pewnym sensie Eclipse wydaje się implikować ten element ścieżki "src", jeśli jest obecny, a jeśli włączysz go do ścieżki źródłowej, dławiki Eclipse. Czy coś takiego.

1

Myślę, że problem w przestrzeni (lub zlokalizowane) simbols w ścieżce do archiwum źródłowego. Spróbuj przenieść go w inne miejsce prostą ścieżką.