Dit artikel is voor het laatst bijgewerkt in januari 2020
In een ideale wereld zouden bugs nooit de productie bereiken. Maar, softwarefouten zijn een onvermijdelijk onderdeel van het leven van een ontwikkelaar. Java debugging tools bestaan om ons te helpen fouten sneller op te lossen, zodat we verder kunnen gaan met waar we het beste in zijn.
Deze lijst van Java debugging tools zal u helpen uw opties snel te evalueren, zodat u de beste voor de job kunt vinden.
Vind en repareer Java fouten, uitzonderingen, bugs & crashes met gemak. Raygun registreert elke crash en rapporteert in real time
Raygun Crash Reporting
Eén van de moeilijkste dingen bij debuggen is dat u niet altijd weet welke fouten uw gebruikers ondervinden. Raygun Error Monitoring heeft alles wat u nodig hebt om bugs, fouten en crashes te ontdekken die zich voordoen in productie en daarbuiten.
Raygun4Java stelt u in staat om standaard uitzonderingen van desktop- en console Java- en Scala-apps te verzenden. U kunt al uw uitzonderingen naar uw Raygun dashboard sturen, zodat u een gedetailleerde diagnose voor elke fout kunt zien, inclusief volledige stack traces, gegevens met betrekking tot methode, functie en klasse namen, en meer.
De installatie en configuratie neemt niet meer dan een paar minuten in beslag. Raygun kan elk object verwerken dat erft van de Throwable
klasse. Geavanceerde functies zoals Breadcrumbs, Filters en Custom Tags maken het debuggingproces ook eenvoudiger.
Eclipse
Eclipse is een populaire open-source IDE die wordt gebruikt voor Java-ontwikkeling, maar het heeft ook plug-ins voor andere talen zoals PHP, Python, Ruby en C#. Het Eclipse platform wordt geleverd met geavanceerde debugging functies die je helpen je code te inspecteren tijdens de uitvoering, waardoor het een goed afgeronde tool is. Een groot voordeel is dat de Eclipse-workflow handig is, omdat je hetzelfde platform kunt gebruiken voor zowel ontwikkeling als debugging.
Een van de beste functies van Eclipse is het Debug Perspective, dat relevante debugging-informatie naast elkaar toont, zoals variabelen, breakpoints, threads en call stacks.
Met Eclipse kunt u ook threads opschorten en hervatten, door de uitvoering van het programma stappen, waarden inspecteren en expressies evalueren.
NetBeans
NetBeans is een andere gratis en open-source IDE. Net als Eclipse zijn de debug-functies ingebouwd in het platform, zodat u alleen de IDE hoeft te downloaden om het debug-gereedschap te krijgen.
NetBeans is er in verschillende downloadbundels; voor Java hebt u de Java SE- of de Java EE-editie nodig. De laatste heeft ook ondersteuning voor HTML5, JavaScript, en de GlassFish en Tomcat servers, dus het is een betere keuze voor meer serieuze ontwikkelingswerk.
De NetBeans Debugger heeft veel vergelijkbare functies als Eclipse. In feite zijn beide uitstekende debugging tools om de broncode te inspecteren en problemen zoals geheugenlekken en concurrency problemen te identificeren. Met NetBeans kunt u breakpoints en conditionele breakpoints instellen, door de code stappen, threads schakelen en de uitvoering in real-time controleren.
NetBeans biedt u ook de handige Visual Debugger-functie, zodat u de visuele elementen van uw Java en JavaFX GUI-toepassingen kunt debuggen. Met de Visual Debugger kunt u luisteraars toevoegen aan GUI-acties, eigenschappen van componenten en de hiërarchie van componenten bekijken, en de broncode lokaliseren.
Als u NetBeans gebruikt, krijgt u ook toegang tot het ingebouwde NetBeans Profiler-hulpprogramma. Met de profiler kunt u het geheugengebruik, de CPU-prestaties, de thread-status en andere kenmerken van uw Java-toepassing controleren. Deze functies werken samen om u te helpen snelheid en geheugengebruik te optimaliseren en overhead te verminderen.
Omdat NetBeans begin 2018 is overgenomen door de Apache Software Foundation, kunt u in de toekomst meer integraties en uitgebreide functies verwachten – vooral omdat Apache al veel van Java-projecten host, van de Maven-builttool tot de Tomcat-server.
IntelliJ IDEA
Naast Eclipse en NetBeans is IntelliJ IDEA de derde IDE die Java-ontwikkelaars meestal noemen als je hen vraagt welke IDE ze gebruiken. IntelliJ IDEA is ontwikkeld door JetBrains en heeft zowel een open-source gemeenschap als een betaalde commerciële editie. Het is vooral een Java IDEA, maar je kunt het ook gebruiken met andere JVM talen zoals Groovy, Kotlin, en Scala. De commerciële editie ondersteunt ook veel JVM en niet-JVM frameworks, zoals Spring, Java EE, Play, Grails, GWT, en Vaadin. Nog beter, beide edities komen met ondersteuning voor Android ontwikkeling – geweldig als je meerdere projecten hebt lopen. Net als de hierboven genoemde IDE debuggers, bevat IntelliJ IDEA ook een ingebouwde Java debugger die out-of-the-box werkt.
IntelliJ IDEA heeft alle standaard debugging functies die je zou verwachten van een best-in-class debugging tool. Met IntelliJ IDEA kunt u:
- Breekpunten en watchpoints
- Evalueer expressies
- Pauzeer en hervat de debuggersessie
- Onderzoek opgeschorte threads
- Stap door de broncode
- Analyseer geheugengebruik
- … En meer
U kunt IntelliJ IDEA ook gebruiken om Java applicaties op afstand te debuggen.
Inline debugging is de meest interessante en unieke functie van IntelliJ IDEA. De inline debugger toont de waarden van variabelen binnen de code, direct naast de regel waar ze werden gebruikt. Wanneer de waarde van de variabele verandert, licht de inline debugger deze op met een andere kleur. Om de waarden te controleren, hoeft u niet naar het Debug-venster te gaan of de muis één voor één over elke variabele te bewegen, zoals bij Eclipse en NetBeans.
Visual Studio Code
U hoeft niet altijd een IDE te gebruiken om Java-toepassingen te debuggen. Microsofts cross-platform broncode-editor, Visual Studio Code, maakt ook debuggen in Java mogelijk via de extensie Debugger for Java.
Als u Visual Studio Code toch al gebruikt voor het bewerken van code en een lichtgewicht en gebruiksvriendelijk debugging-hulpmiddel nodig hebt voor uw Java-ontwikkelingsworkflow, is Visual Studio Code een goede keuze. Hoewel het niet zo veel geavanceerde functies heeft als IDE-debuggers, weet het alles wat je nodig hebt voor een snelle debug-sessie.
De Java-debugger van Visual Studio Code is gebaseerd op Java Debug Server, die een andere Visual Studio Code-extensie genaamd Language Support for Java van Red Hat uitbreidt.
VS Code debugger maakt het mogelijk om:
- Lokaal en op afstand debuggen
- Voorwaardelijke breakpoints en logpoints instellen
- Door de broncode lopen
- Variabelen bekijken en bekijken
- Aanroep stacks
- Debug meerdere threads
- Evalueer expressies
- Gebruik hot code replacement
VS Code’s debugger extensie wordt geleverd met vele configuratie opties die u kunt bekijken in de docs.
De Java Debugger (jdb)
Als u geen externe software voor het debuggen van Java kunt (of wilt) gebruiken, is het ook mogelijk om Java-toepassingen vanaf de opdrachtregel te debuggen. De Java Debugger (jdb) is een eenvoudige command-line debugger die wordt geleverd door Oracle. Het is het equivalent van de GNU Debugger (gdb) voor de Java Virtual Machine. De Java Debugger is inbegrepen in de Java SE Development Kit, dus als je JDK op je machine geïnstalleerd hebt, hoef je niets anders te doen. U kunt de debugger starten met het jdb
commando en de lijst met commando’s openen met het help
commando.
De Java Debugger is in feite een demonstratie van de Java Platform Debugger Architecture (JDPA). JDPA is een verzameling van drie interfaces: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol), en JDI (Java Debug Interface). JDPA is een debug architectuur die ontwikkelaars voorziet van tools om hun eigen debugger applicaties te maken – jdb is slechts een van de mogelijke toepassingen van JDPA.
Met de jdb debugger kun je diepgaande debugging sessies uitvoeren in de commandoregel. Met jdb debugger, kunt u:
- Lijst, opschorten, en threads hervatten
- Expressies evalueren
- Alle objectinformatie afdrukken
- Breekpunten instellen
- Velden bekijken
- Methode-aanroepen traceren
- Stappen door code
- Gewasverzameling van een object toestaan en verhinderen
Een commando-regel debugger is niet de beste keus voor het dagelijkse ontwikkelwerk, vanwege de complexiteit. Toch heeft het een voordeel – draagbaarheid. Je kunt het zonder al te veel gedoe op een server zetten, omdat je de server niet hoeft te koppelen aan een remote IDE debugger. Dit alles maakt jdb een ideale tool voor snelle troubleshooting, wat belangrijk is in een productie-omgeving.
Welke Java debug tool is het beste voor uw project?
Debuggen in Java hoeft niet zo’n uitdaging te zijn. Het gebruik van een van deze debugging tools zal het debugging proces veel sneller maken. Elke use-case zal anders zijn, maar het evalueren van uw opties zal u helpen de juiste tool voor uw project te kiezen.
Debuggen in Java is eenvoudiger als je weet waar de fout zit! Raygun Crash Reporting for Java helpt ontwikkelaars bij het opsporen, diagnosticeren en oplossen van problemen met een grotere snelheid en nauwkeurigheid. Probeer het 14 dagen gratis uit.