Podczas debugowania aplikacji Java w środowisku Eclipse pojawia się błąd „ Nie znaleziono źródła ” w dwóch przypadkach:
- Wejście do pliku w innym projekcie, który jest już zaimportowany
- Wejście do pliku w zainstalowanym repozytorium maven
Pliki tam są, ale zaćmienie nie wchodzi w nie, zamiast tego pokazuje przycisk „ załącz źródło ”
Próbowałem dołączyć (który otworzył okno dialogowe, aby zdefiniować zmienną ?!) i zaćmienie przeskoczyło do pliku, ale debugger nie mógł tam sprawdzić żadnych zmiennych. Również ręczne dołączanie źródła dla każdej zależności nie jest praktyczne, ponieważ w moim przypadku istnieją tysiące plików zależności.
Jestem nowy w Eclipse \ java, więc wyjaśnienie, dlaczego tak się dzieje, + jak to rozwiązać, bardzo by pomogło!
Tylko 3 kroki do konfiguracji Eclipse IDE:
Edytuj wyszukiwanie źródła Wybierz polecenie Edytuj wyszukiwanie źródła ... [Edytuj wyszukiwanie źródła], aby otworzyć okno dialogowe Ścieżka źródłowa, które umożliwia wprowadzanie zmian do ścieżki wyszukiwania źródła wybranego celu debugowania.
WAŻNE Uruchom ponownie Eclipse po tym ostatnim kroku.
źródło
Symptomy doskonale opisują przypadek, gdy znaleziona klasa nie ma powiązanego (lub przypisanego) źródła.
Ale co, jeśli Eclipse nadal sugeruje dołączenie źródła, nawet jeśli poprawnie ustawię swoje klasy i ich źródła:
To prawie zawsze oznacza, że Eclipse znajduje klasę z innego miejsca niż się spodziewasz. Sprawdź źródłową ścieżkę wyszukiwania, aby zobaczyć, gdzie może dojść do niewłaściwej klasy. Zaktualizuj ścieżkę zgodnie z ustaleniami.
Zaćmienie nie znajduje niczego, gdy zostanie osiągnięty punkt przerwania:
Dzieje się tak, gdy źródłowa ścieżka wyszukiwania nie zawiera klasy, która jest aktualnie ładowana w środowisku wykonawczym. Nawet jeśli klasa znajduje się w obszarze roboczym, może być niewidoczna dla konfiguracji uruchamiania, ponieważ Eclipse ściśle przestrzega ścieżki wyszukiwania źródła i dołącza tylko zależności projektu, który jest obecnie debugowany.
Wyjątkiem są pakiety debugujące w PDE . W tym przypadku, ponieważ środowisko wykonawcze składa się z wielu projektów, które nie muszą deklarować wzajemnych zależności, Eclipse automatycznie znajdzie klasę w obszarze roboczym, nawet jeśli nie jest ona dostępna w źródłowej ścieżce wyszukiwania.
Nie widzę zmiennych, gdy uderzę w punkt przerwania lub po prostu otwiera źródło, ale nie wybiera linii punktu przerwania:
Oznacza to, że w środowisku wykonawczym ani JVM, ani same klasy nie mają niezbędnych informacji debugowania. Za każdym razem, gdy kompilowane są klasy, można dołączyć informacje debugowania. Aby zmniejszyć przestrzeń dyskową klas, czasami informacje te są pomijane, co sprawia, że debugowanie takiego kodu jest uciążliwe. Jedyną szansą jest próba ponownej kompilacji z włączonym debugowaniem.
Przeglądarka źródeł Eclipse pokazuje inne linie niż te, które są faktycznie wykonywane:
Czasami może pokazywać, że jest również wykonywane puste miejsce. Oznacza to, że twoje źródła nie pasują do twojej wersji środowiska wykonawczego klas. Nawet jeśli uważasz, że nie jest to możliwe, upewnij się, że skonfigurowałeś właściwe źródła. Lub środowisko wykonawcze pasuje do najnowszych zmian, w zależności od tego, co próbujesz zrobić.
źródło
From http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source
„Podczas pracy w trybie debugowania kliknij prawym przyciskiem myszy działający wątek (w zakładce wątków) i wybierz Edytuj wyszukiwanie źródła. W tym momencie powinieneś być w stanie dodać niezbędny projekt / słoik zawierający kod źródłowy.”
W ten sposób dodałem swój obecny projekt i to rozwiązało mój problem
źródło
Miałem podobny problem z moim projektem Eclipse maven. Długo walczyłem z tym problemem, a potem próbowałem odbudować projekt
i pomogło.
Uwaga: użycie tego podejścia spowoduje zamieszanie wtyczki m2e, ponieważ oba podejścia są bardzo różne. m2e dodaje do twojego projektu wirtualny węzeł o nazwie „Zależności Maven” i prosi Maven o dodanie wszystkich zależności.
mvn eclipse:eclipse
z drugiej strony utworzy wiele pojedynczych wpisów w pliku.classpath
. Eclipse zajmie się nimi tak, jakbyś ręcznie dodał pliki JAR do swojego projektu.O ile nie wiesz, jak działa ścieżka klasy w środowisku Eclipse, takie podejście nie jest zalecane.
źródło
mvn eclipse:eclipse
dodaj zależność projektu do ścieżki kompilacji Java, aby działała. Poza tym wtyczka m2eclipse doda zależność projektu tylko w „Zależności Maven”, które w zakładce Biblioteki nie mogą znaleźć debugera.Usuń istniejącą konfigurację debugowania i utwórz nową. To powinno rozwiązać problem.
źródło
Stałem wobec tego samego problemu, podążyłem za krokami poniżej.
Window=> Preferences=> Java=> Installed JREs,
Widać na powyższym ekranie
Jre1.8.0_12
jest wybrany.wybierz używane środowisko JRE i kliknij Edit. Teraz powinieneś zobaczyć poniższy ekran.
Kliknij katalog, wyszukaj Jdk, powinien on wyglądać jak poniżej.
kliknij ok i gotowe
źródło
java.
likejava.lang.String
)Miałem problem, że mój Eclipse nie debugował kodu źródłowego mojego projektu. Otrzymałem pustą stronę z „Znaleziono węzeł kodu źródłowego”.
Kliknij przycisk Dołącz kod źródłowy. Następnie usuń folder „domyślny”, kliknij dodaj i przejdź do lokalizacji projektu i dołącz. To zadziałało dla mnie
źródło
W moim przypadku nawet po edycji wyszukiwania źródła i dodaniu projektu nie zadziałało. Skonfigurowałem ścieżkę kompilacji projektu.
Następnie wybrałem bibliotekę systemową JRE i działało.
źródło
Najwyraźniej Eclipse nie wie automatycznie, gdzie znajduje się kod źródłowy zależnych słoików. Nie jest jasne, dlaczego debugger nie mógł sprawdzać zmiennych po podłączeniu źródła. Jedną z możliwości jest nieprawidłowe / niezgodne źródło.
Zakładając, że masz projekt maven, a źródła zależności są pobierane i dostępne w lokalnym repozytorium, możesz zainstalować m2eclipse , wtyczkę maven eclipse i sprawdzić, czy to pomoże w rozwiązaniu problemu.
źródło
Być może masz kod źródłowy zależności dostępny dla Eclipse. Ale Eclipse nie zna kodu źródłowego dla kodu ładowanego dynamicznie. Np. Przez Maven.
W przypadku Maven polecam użycie wtyczki run-jetty-run:
http://code.google.com/p/run-jetty-run/
Aby obejść ten problem, możesz także połączyć się z działającą maszyną JVM za pomocą debugera, a zobaczysz kod. Alternatywnie możesz użyć wtyczki Dynamic Source Lookup dla Eclipse stąd:
https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup
Niestety nie pomogło mi, ponieważ ma problemy ze ścieżkami systemu Windows ze spacjami.
Wypełniłem prośbę o ulepszenie Bugzilli Eclipse i jeśli zgodzisz się, że problem „Nie znaleziono źródła” powinien zniknąć na zawsze, zagłosuj na to tutaj:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065
Dzięki!
Sasa
źródło
W moim przypadku w „Attachment Source” dodałem inny katalog projektu maven w panelu „Source Attachment Configuration”. Dodanie najnowszej wersji jar z repozytorium m2 nie działa. Nie udało się otworzyć wszystkich klas z innego projektu maven.
Tutaj test był moim drugim projektem maven zawierającym wszystkie źródła Java.
źródło
Kliknij -> Edytuj źródłową ścieżkę wyszukiwania
po tym
Kliknij -> Dodaj, a następnie wybierz projekt Java i wybierz ścieżkę projektu.
Źródło: https://www.youtube.com/watch?v=IGIKPY6q1Qw
źródło
Miałem ten sam problem. W moim przypadku wyłączyłem Window-Preferences-Java-Debug [Zawieś wykonanie na nieprzechwyconych wyjątkach]. Następnie konsola pokazała prawidłowy błąd: mój użytkownik MySql nie miał uprawnień dostępu do bazy danych. Zgodnie z tym tematem.
źródło
Informacja: Jest to możliwe rozwiązanie, jeśli używasz maven (pom.xml) z kilkoma projektami.
Jeśli pracujesz z maven, upewnij się, jaką wersję bierzesz zgodnie z pom.xml (np. 1.0.1-SNAPSHOT). Możliwe, że twój kod jest aktualny, ale twoje zależności pom.xml nadal pobierają stare pliki JAR / Snapshots (ze starym kodem).
Znalezienie problemu:
źródło
Jeśli korzystasz z platformy Eclipse lub STS, zainstaluj i użyj GC (wtyczka GrepCode), przez pewien czas nie musisz dołączać źródłowego pliku .zip do ścieżki projektu, aby GrepCode działał dobrze.
źródło
Mam podobny problem związany z debugowaniem serwera Glassfish w Eclipse. Zostało to spowodowane załadowaniem kodu źródłowego z innego repozytorium (zmiana z SVN na GitHub). W trakcie tego procesu serwer Glassfish użył niewłaściwych skompilowanych klas, a zatem źródło i czas działania nie byłyby zsynchronizowane z punktami przerwania pojawiającymi się na pustych liniach.
Aby rozwiązać ten problem, zmień nazwę lub usuń górny folder katalogu klas, a Glassfish odtworzy całe drzewo katalogów klas, w tym zaktualizuje pliki klas z poprawnie skompilowaną wersją.
Katalog klas znajduje się w: / workspace / glassfish3122eclipsedefaultdomain / eclipseApps / <your Web Application> / WEB-INF / klas
źródło
W moim przypadku z projektami tomcat sprawdziłem tutaj projekt: Okno - Preferencje - Tomcat - Ścieżka źródłowa - Dodaj projekty Java do ścieżki źródłowej
źródło
W moim przypadku wersja Maven innego przywoływanego projektu nie pasowała do wersji projektu testowego. Gdy były takie same, problem zniknął.
źródło
Podczas pracy w trybie debugowania kliknij opcję Edytuj wyszukiwanie źródła po zawieszeniu w wątku. W tym momencie powinniśmy być w stanie dodać niezbędny projekt / słoik zawierający kod źródłowy. Po tym, jak dodałem swój obecny projekt w ten sposób, rozwiązało to mój problem. Dzięki
źródło
Jeśli chcesz dołączyć kod źródłowy do dowolnego pliku JAR przez automatyczne pobieranie, spróbuj użyć tej wtyczki Eclipse Java Source Attacher
źródło
Miałem ten problem podczas pracy nad kodem Java, aby wykonać proces na pliku Excel zawierającym zestaw danych, a następnie przekonwertować go do pliku .csv, próbowałem odpowiedzi na ten post, ale one nie działały. problemem były same pliki jar. po pobraniu potrzebnych plików jar jeden po drugim (starsze wersje) i dodaniu ich do mojego projektu, błąd „nie znaleziono źródła” zniknął. może możesz sprawdzić swoje pliki jar. mam nadzieję, że to pomoże.
źródło
to zadziałało dla mnie
kliknij prawym przyciskiem myszy projekt -> Właściwości -> Wdrożenie Zespół -> dodaj swój słoik
źródło
Przejdź do konfiguracji debugowania w środowisku Eclipse i użyj poniżej celu, aby uruchomić aplikację.
-Dmaven.surefire.debug
na przykład
-Dmaven.surefire.debug exec: java
źródło
Cóż, oto co dla mnie zadziałało. Wypróbowałem wszystkie możliwe rozwiązania StackOverflow, które tam były. Próbowałem zmienić lokalizację źródła w menu debugowania, zainstalowałem wtyczkę m2e Eclipse, zmieniłem z osadzonego Maven, zainstalowałem run-jetty-run i nic nie działało. Teraz zastrzeżę, że nie próbowałem przeglądać kodu źródłowego osoby zewnętrznej, chciałem tylko zobaczyć mój własny kod, ale za każdym razem, gdy „wkraczałem” do moich metod, które napisałem, które były w MOIM projekcie, otrzymałem Błąd „Znaleziono źródło”.
Po tym, jak w końcu zapytałem eksperta, moim problemem było to, że pierwszą rzeczą, którą robiła Eclipse, było wywołanie ClassLoadera, co widać ze stosu debugowania. Wszystko, co musiałem zrobić, to F6 (krok wstecz), a potem zabrało mnie to z powrotem do mojego pierwotnego połączenia, a następnie F5 (krok do przodu). I był mój kod. Westchnienie ... takie proste rozwiązanie, ale stracona godzina.
źródło
Dla początkujących,
Istnieje możliwość, że plik jar jest częścią projektu, który nie został jeszcze uwzględniony w obszarze roboczym Eclipse.
W tym celu musisz znać nazwę projektu pliku jar. Powiedzmy na przykład, że jego abc -18.0.0-SNAPSHOT.jar oznacza, że projekt, który powinien zostać uwzględniony w obszarze roboczym, to abc .
źródło
Miałem ten sam problem z Eclipse 2019-03 (4.11.0) i byłem w stanie rozwiązać ten problem tylko poprzez debugowanie za pomocą zdalnego debugowania zamiast bezpośredniego uruchamiania go w trybie debugowania.
źródło
Załącz źródło -> Dodaj -> Archiwum zewnętrzne -> wybierz jar -> otwórz -> gotowe
haczykiem jest poszukiwanie słoika ze źródłami i dołączenie tego słoika.
na przykład jar kończy się na „-sources” Stax2-api-3.4.1-sources
źródło
Jeśli próbujesz debugować projekt maven java, a zaćmienie nie może znaleźć Twojego źródła, wypróbuj jedno z nich.
Spróbuj maven-> aktualizacja, a następnie debuguj
teraz spróbuj debugować
źródło
W eclipse photon spróbuj wyłączyć „Window-> Preferencje-> Java-> Debug-> Użyj zaawansowanego wyszukiwania źródła”
Edycja: W tej wersji zaćmienia występuje podobny błąd, który prowadzi do komunikatu „nie znaleziono źródła” podczas debugowania aplikacji Java. Więcej informacji można znaleźć w raporcie o błędzie bugs.eclipse.org/bugs/show_bug.cgi?id=537699
źródło