Ten artykuł był ostatnio aktualizowany styczeń 2020
W idealnym świecie błędy nigdy nie dotarłyby do produkcji. Ale błędy w oprogramowaniu są nieuniknioną częścią życia programisty. Narzędzia do debugowania w Javie istnieją, aby pomóc nam szybciej rozwiązywać błędy, więc możemy zająć się tym, co robimy najlepiej.
Ta lista narzędzi do debugowania w Javie pomoże ci szybko ocenić opcje, abyś mógł znaleźć najlepsze do tej pracy.
Znajdź i napraw błędy Java, wyjątki, błędy & awarie z łatwością. Raygun przechwytuje każdą awarię i raportuje w czasie rzeczywistym
Raygun Crash Reporting
Jedną z najtrudniejszych rzeczy w debugowaniu jest to, że nie zawsze wiesz, jakich błędów doświadczają Twoi użytkownicy. Raygun Error Monitoring ma wszystko, czego potrzebujesz, aby odkryć błędy i awarie, które zdarzają się na produkcji i nie tylko.
Raygun4Java domyślnie umożliwia wysyłanie wyjątków z aplikacji Java i Scala na pulpicie i w konsoli. Wszystkie wyjątki można wysyłać do pulpitu nawigacyjnego Raygun, dzięki czemu można zobaczyć szczegółową diagnozę każdego błędu, w tym pełne ślady stosu, dane związane z nazwami metod, funkcji i klas oraz inne.
Instalacja i konfiguracja nie zajmuje więcej niż kilka minut. Raygun może przetwarzać dowolny obiekt, który dziedziczy po klasie Throwable
. Zaawansowane funkcje, takie jak Breadcrumbs, Filtry i Tagi niestandardowe ułatwiają również proces debugowania.
Eclipse
Eclipse jest popularnym open-source IDE, które jest używane do rozwoju Java, ale ma również wtyczki dla innych języków, takich jak PHP, Python, Ruby i C#. Platforma Eclipse jest wyposażona w zaawansowane funkcje debugowania, które pomagają sprawdzać kod podczas jego wykonywania, dzięki czemu jest to bardzo wszechstronne narzędzie. Dużą zaletą Eclipse jest wygodny przepływ pracy, ponieważ można używać tej samej platformy zarówno do tworzenia, jak i debugowania.
Jedną z najlepszych cech Eclipse jest perspektywa debugowania, która pokazuje obok siebie istotne informacje dotyczące debugowania, takie jak zmienne, punkty przerwania, wątki i stosy wywołań.
W Eclipse można również zawieszać i wznawiać wątki, przechodzić krok po kroku przez wykonanie programu, sprawdzać wartości i oceniać wyrażenia.
NetBeans
NetBeans jest kolejnym wolnym i otwartoźródłowym IDE. Podobnie jak Eclipse, funkcje debugowania są wbudowane w platformę, więc wystarczy pobrać IDE, aby uzyskać narzędzie do debugowania.
NetBeans jest dostępny w różnych pakietach do pobrania; dla Javy potrzebna jest edycja Java SE lub Java EE. Ta ostatnia ma również wsparcie dla HTML5, JavaScript oraz serwerów GlassFish i Tomcat, więc jest to lepszy wybór dla poważniejszych prac programistycznych.
Debugger NetBeans ma wiele cech podobnych do Eclipse. W rzeczywistości oba są doskonałymi narzędziami do debugowania, pozwalającymi na inspekcję kodu źródłowego i identyfikację problemów, takich jak wycieki pamięci i problemy ze współbieżnością. NetBeans pozwala ustawiać punkty przerwania i punkty warunkowe, przechodzić przez kod, przełączać wątki i monitorować wykonanie w czasie rzeczywistym.
NetBeans udostępnia również poręczną funkcję Debugger wizualny, dzięki której można debugować wizualne elementy aplikacji GUI w Javie i JavaFX. Dzięki Visual Debugger, możesz dodawać słuchaczy do akcji GUI, przeglądać właściwości komponentów i ich hierarchię oraz lokalizować kod źródłowy.
Jeśli używasz NetBeans, otrzymujesz również dostęp do wbudowanego narzędzia NetBeans Profiler. Za pomocą profilera można sprawdzić wykorzystanie pamięci, wydajność procesora, stany wątków i inne cechy aplikacji Java. Funkcje te współpracują ze sobą, aby pomóc Ci zoptymalizować szybkość i wykorzystanie pamięci oraz zmniejszyć koszty ogólne.
Jako że NetBeans został przejęty przez Apache Software Foundation na początku 2018 roku, możesz spodziewać się więcej integracji i rozszerzonych funkcji w przyszłości – zwłaszcza że Apache już hostuje wiele projektów Java, od narzędzia do budowania Maven po serwer Tomcat.
IntelliJ IDEA
Oprócz Eclipse i NetBeans, IntelliJ IDEA jest trzecim IDE, o którym zwykle wspominają programiści Java, gdy pytasz ich, jakiego IDE używają. Opracowany przez firmę JetBrains, IntelliJ IDEA jest dostępny zarówno w wersji społecznościowej z otwartym kodem źródłowym, jak i w płatnej edycji komercyjnej. Jest to głównie Java IDE, ale można go również używać z innymi językami JVM, takimi jak Groovy, Kotlin i Scala. Komercyjne wydanie wspiera wiele frameworków JVM i nie-JVM, takich jak Spring, Java EE, Play, Grails, GWT i Vaadin. Co więcej, obie edycje posiadają wsparcie dla rozwoju Androida – świetna sprawa, jeśli prowadzisz wiele projektów. Podobnie jak wspomniane wcześniej debuggery IDE, IntelliJ IDEA zawiera również wbudowany debugger Java, który działa out-of-the-box.
IntelliJ IDEA ma wszystkie standardowe funkcje debugowania, których można oczekiwać od najlepszego w swojej klasie narzędzia do debugowania. IntelliJ IDEA pozwala na:
- Tworzyć i konfigurować punkty przerwania i punkty obserwacyjne
- Ewaluować wyrażenia
- Pauzować i wznawiać sesję debuggera
- Badać zawieszone wątki
- Przechodzić przez kod źródłowy
- Analizować wykorzystanie pamięci
- …. I więcej
Możesz także użyć IntelliJ IDEA do zdalnego debugowania aplikacji Java.
Debugowanie inline jest najbardziej interesującą i unikalną funkcją IntelliJ IDEA. Debugger inline wyświetla wartości zmiennych w kodzie, tuż obok wiersza, w którym zostały one użyte. Za każdym razem, gdy wartość zmiennej się zmienia, debuger inline podświetla ją innym kolorem. Aby sprawdzić wartości, nie ma potrzeby przechodzenia do okna Debug lub najeżdżania na każdą zmienną po kolei, jak w przypadku Eclipse i NetBeans.
Visual Studio Code
Nie zawsze trzeba używać IDE do debugowania aplikacji Java. Wieloplatformowy edytor kodu źródłowego Microsoftu, Visual Studio Code, również umożliwia debugowanie Javy poprzez rozszerzenie Debugger for Java.
Jeśli mimo wszystko używasz Visual Studio Code do edycji kodu i potrzebujesz lekkiego i łatwego w użyciu narzędzia do debugowania, Visual Studio Code jest świetnym wyborem. Chociaż nie ma on tak wielu zaawansowanych funkcji jak debuggery IDE, wie wszystko, czego potrzebujesz do szybkiej sesji debugowania.
Debugger Java Visual Studio Code jest oparty na Java Debug Server, który rozszerza inne rozszerzenie Visual Studio Code o nazwie Language Support for Java firmy Red Hat.
Debugger VS Code pozwala na:
- Prowadzić lokalne i zdalne debugowanie
- Ustawiać warunkowe punkty przerwania i punkty dziennika
- Przechodzić przez kod źródłowy
- Przeglądać i obserwować zmienne
- Przeglądać wywołania stosy
- Debuguj wiele wątków
- Ewaluuj wyrażenia
- Używaj zastępowania gorącego kodu
Rozszerzenie debuggera VS Code jest dostarczane z wieloma opcjami konfiguracji, które możesz sprawdzić w dokumentach.
Debugger Java (jdb)
Jeśli nie możesz (lub nie chcesz) używać zewnętrznego oprogramowania do debugowania Javy, możliwe jest również debugowanie aplikacji Java z linii poleceń. The Java Debugger (jdb) jest prostym debuggerem wiersza poleceń dostarczonym przez Oracle. Jest to odpowiednik GNU Debuggera (gdb) dla maszyny wirtualnej Javy. Debugger Javy jest zawarty w Java SE Development Kit, więc jeśli masz zainstalowany JDK na swoim komputerze, nie musisz robić nic więcej. Możesz uruchomić debugger poleceniem jdb
i uzyskać dostęp do listy poleceń za pomocą polecenia help
.
Debugger Javy jest w rzeczywistości demonstracją Java Platform Debugger Architecture (JDPA). JDPA jest zbiorem trzech interfejsów: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol) oraz JDI (Java Debug Interface). JDPA jest architekturą debugowania, która dostarcza programistom narzędzi do tworzenia własnych aplikacji debuggera – jdb jest tylko jednym z możliwych zastosowań JDPA.
Debugger jdb pozwala przeprowadzać dogłębne sesje debugowania w wierszu poleceń. Dzięki debuggerowi jdb, możesz:
- Listować, zawieszać, i wznawiać wątki
- oceniać wyrażenia
- wydrukować wszystkie informacje o obiekcie
- ustawiać punkty przerwania
- obserwować pola
- śledzić wywołania metod
- przechodzić przez kod
- . przez kod
- Zezwalaj i zapobiegaj odśmiecaniu obiektu
Debugger wiersza poleceń nie jest najlepszym wyborem do codziennej pracy programistycznej ze względu na swoją złożoność. Ma on jednak pewną zaletę – przenośność. Można go skonfigurować na serwerze bez większych problemów, ponieważ nie trzeba podłączać serwera do zdalnego debuggera IDE. To wszystko sprawia, że jdb jest idealnym narzędziem do szybkiego rozwiązywania problemów, co jest ważne w środowisku produkcyjnym.
Które narzędzie do debugowania Javy jest najlepsze dla twojego projektu?
Debugowanie Javy nie musi być takim wyzwaniem. Użycie któregokolwiek z tych narzędzi sprawi, że proces debugowania będzie znacznie szybszy. Każdy przypadek użycia będzie inny, ale ocena opcji pomoże Ci wybrać odpowiednie narzędzie dla Twojego projektu.
Debugowanie Javy jest łatwiejsze, gdy wiesz, gdzie jest błąd! Raygun Crash Reporting for Java pomaga programistom wykrywać, diagnozować i rozwiązywać problemy z większą szybkością i dokładnością. Skorzystaj z bezpłatnej 14-dniowej wersji próbnej.