Denne artikel blev senest opdateret januar 2020
I en ideel verden ville fejl aldrig nå produktion. Men softwarefejl er en uundgåelig del af en udviklers liv. Java-fejlfindingsværktøjer findes for at hjælpe os med at løse fejl hurtigere, så vi kan komme videre med det, vi er bedst til.
Denne liste over Java-fejlfindingsværktøjer hjælper dig med at evaluere dine muligheder hurtigt, så du kan finde det bedste til opgaven.
Find og ret Java-fejl, undtagelser, bugs &nedbrud med lethed. Raygun opfanger alle nedbrud og rapporterer i realtid
Raygun Crash Reporting
En af de sværeste ting ved fejlfinding er, at du ikke altid ved, hvilke fejl dine brugere oplever. Raygun Error Monitoring har alt, hvad du har brug for til at opdage fejl, fejl og nedbrud, der sker i produktionen og videre ud over det.
Raygun4Java giver dig mulighed for at sende undtagelser fra desktop- og konsol-Java- og Scala-apps som standard. Du kan sende alle dine undtagelser til dit Raygun-dashboard, så du kan se en detaljeret diagnose for hver fejl, herunder fulde stakspor, data relateret til metode-, funktions- og klassebetegnelser og meget mere.
Installationen og konfigurationen tager ikke mere end et par minutter. Raygun kan behandle ethvert objekt, der arver fra Throwable
-klassen. Avancerede funktioner som Breadcrumbs, Filters og Custom Tags gør også fejlfindingsprocessen nemmere.
Eclipse
Eclipse er et populært open source IDE, der bruges til Java-udvikling, men det har også plugins til andre sprog som PHP, Python, Ruby og C#. Eclipse-platformen leveres med avancerede debugging-funktioner, der hjælper dig med at inspicere din kode under udførelsen, hvilket gør det til et velafrundet værktøj. En stor fordel er, at Eclipse-arbejdsgangen er praktisk, fordi du kan bruge den samme platform til både udvikling og fejlfinding.
En af de bedste funktioner i Eclipse er debugperspektivet, som viser relevante fejlfindingsoplysninger side om side, f.eks. variabler, breakpoints, tråde og call stacks.
Med Eclipse kan du også suspendere og genoptage tråde, gå gennem udførelsen af programmet, inspicere værdier og evaluere udtryk.
NetBeans
NetBeans er et andet gratis og open source-IDE. Ligesom Eclipse er debuggingfunktionerne indbygget i platformen, så du behøver kun at downloade IDE’et for at få debuggingværktøjet.
NetBeans findes i forskellige downloadpakker; for Java skal du bruge enten Java SE- eller Java EE-udgaven. Sidstnævnte har også understøttelse af HTML5, JavaScript og GlassFish- og Tomcat-serverne, så det er et bedre valg til mere seriøst udviklingsarbejde.
NetBeans Debugger har mange lignende funktioner som Eclipse. Faktisk er begge fremragende debugging-værktøjer til at inspicere kildekoden og identificere problemer som f.eks. hukommelseslækager og samtidighedsproblemer. NetBeans giver dig mulighed for at opsætte breakpoints og betingede breakpoints, gå gennem koden, skifte tråde og overvåge udførelsen i realtid.
NetBeans giver dig også den praktiske Visual Debugger-funktion, så du kan debugge de visuelle elementer i dine Java- og JavaFX GUI-programmer. Med Visual Debugger kan du tilføje lyttere til GUI-handlinger, se komponentegenskaber og komponenthierarkiet og finde kildekoden.
Hvis du bruger NetBeans, får du også adgang til det indbyggede NetBeans Profiler-værktøj. Med profileringsværktøjet kan du kontrollere hukommelsesforbrug, CPU-ydelse, trådtilstande og andre karakteristika for dit Java-program. Disse funktioner arbejder sammen for at hjælpe dig med at optimere hastigheden og hukommelsesforbruget og reducere overhead.
Da NetBeans blev overtaget af Apache Software Foundation i begyndelsen af 2018, kan du forvente flere integrationer og udvidede funktioner i fremtiden – især da Apache allerede er vært for mange af Java-projekterne fra Maven-bygningsværktøjet til Tomcat-serveren.
IntelliJ IDEA
Bortset fra Eclipse og NetBeans er IntelliJ IDEA det tredje IDE, som Java-udviklere normalt nævner, når man spørger dem, hvilket IDE de bruger. IntelliJ IDEA er udviklet af JetBrains og findes både i en open source-fællesskabsudgave og i en kommerciel udgave mod betaling. Det er primært et Java-IDE, men du kan også bruge det med andre JVM-sprog såsom Groovy, Kotlin og Scala. Den kommercielle udgave understøtter også mange JVM- og ikke-JVM-frameworks, såsom Spring, Java EE, Play, Grails, GWT og Vaadin. Endnu bedre er det, at begge udgaver kommer med understøttelse af Android-udvikling – godt, hvis du kører flere projekter. Ligesom de IDE-debuggere, der er nævnt ovenfor, indeholder IntelliJ IDEA også en indbygget Java-debugger, der fungerer out-of-the-box.
IntelliJ IDEA har alle de standarddebuggingfunktioner, du kan forvente af et debuggingværktøj, der er det bedste i sin klasse. IntelliJ IDEA giver dig mulighed for at:
- Opret og konfigurer breakpoints og watchpoints
- Evaluerer udtryk
- Pause og genoptag debuggersessionen
- Undersøg suspenderede tråde
- Skridt gennem kildekoden
- Analyse af hukommelsesforbrug
- … Og meget mere
Du kan også bruge IntelliJ IDEA til at fejlsøge Java-programmer eksternt.
Inline debugging er den mest interessante og unikke funktion i IntelliJ IDEA. Inline debuggeren viser værdierne for variabler i koden lige ved siden af den linje, hvor de blev brugt. Hver gang værdien af variablen ændres, fremhæver inline debuggeren den med en anden farve. For at tjekke værdierne er det ikke nødvendigt at flytte til Debug-vinduet eller holde musen hen over hver enkelt variabel én for én som med Med Eclipse og NetBeans.
Visual Studio Code
Du behøver ikke altid at bruge et IDE til at debugge Java-programmer. Microsofts kildekodeeditor på tværs af platforme, Visual Studio Code, gør også Java-debugging mulig via udvidelsen Debugger for Java.
Hvis du alligevel bruger Visual Studio Code til kodeditering og har brug for et let og brugervenligt debuggingværktøj til din Java-udviklingsarbejdsgang, er Visual Studio Code et godt valg. Selv om det ikke har så mange avancerede funktioner som IDE-debuggere, kender det alt det, du har brug for til en hurtig debugging-session.
Visual Studio Codes Java-debugger er baseret på Java Debug Server, som udvider en anden Visual Studio Code-udvidelse kaldet Language Support for Java fra Red Hat.
VS Code debugger giver dig mulighed for at:
- Udføre lokal og fjerndebugging
- Sætte betingede breakpoints og logpoints op
- Stige gennem kildekoden
- Inspicere og overvåge variabler
- Se kald stacks
- Debug flere tråde
- Evaluer udtryk
- Use hot code replacement
VS Code’s debugger-udvidelse kommer med mange konfigurationsmuligheder, som du kan tjekke i dokumentationen.
The Java Debugger (jdb)
Hvis du ikke kan (eller ikke ønsker at) bruge ekstern software til Java-debugging, er det også muligt at debugge Java-programmer fra kommandolinjen. Java Debugger (jdb) er en simpel kommandolinje-debugger, der leveres af Oracle. Det svarer til GNU Debugger (gdb) for Java Virtual Machine. Java Debugger er inkluderet i Java SE Development Kit, så hvis du har JDK installeret på din maskine, behøver du ikke at gøre noget andet. Du kan starte debuggeren med kommandoen jdb
og få adgang til listen over kommandoer ved hjælp af kommandoen help
.
Java Debugger er i virkeligheden en demonstration af Java Platform Debugger Architecture (JDPA). JDPA er en samling af tre grænseflader: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol) og JDI (Java Debug Interface). JDPA er en debugging-arkitektur, der giver udviklere værktøjer til at skabe deres egne debugger-programmer – jdb er blot en af JDPA’s anvendelsesmuligheder.
Med jdb-debuggeren kan du udføre dybdegående debugging-sessioner i kommandolinjen. Med jdb debugger kan du:
- Liste, suspendere, og genoptage tråde
- Evaluere udtryk
- Udskrive alle objektoplysninger
- Sætte breakpoints
- Opmærke felter
- Spore metodekald
- Step gennem kode
- Godkend og forhindre garbage collection af et objekt
En kommandolinje-debugger er ikke det bedste valg til det daglige udviklingsarbejde på grund af dens kompleksitet. Alligevel kommer den med en fordel – portabilitet. Du kan opsætte den på en server uden alt for meget besvær, da du ikke behøver at tilknytte serveren til en fjern-IDE-debugger. Alt dette gør jdb til et ideelt værktøj til hurtig fejlfinding, hvilket er vigtigt i et produktionsmiljø.
Hvilket Java-debuggingværktøj er bedst til dit projekt?
Debugging af Java behøver ikke at være en sådan udfordring. Hvis du bruger et af disse fejlfindingsværktøjer, vil fejlsøgningsprocessen gå meget hurtigere. Hver brugssituation vil være forskellig, men hvis du evaluerer dine muligheder, kan du vælge det rigtige værktøj til dit projekt.
Debugging Java er nemmere, når du ved, hvor fejlen er! Raygun Crash Reporting for Java hjælper udviklere med at opdage, diagnosticere og løse problemer med større hastighed og nøjagtighed. Tag en gratis 14-dages prøveperiode.