Dieser Artikel wurde zuletzt im Januar 2020 aktualisiert
In einer idealen Welt würden Bugs niemals die Produktion erreichen. Aber Softwarefehler sind ein unvermeidlicher Teil des Lebens eines Entwicklers. Java-Debugging-Tools helfen uns dabei, Fehler schneller zu beheben, damit wir mit dem weitermachen können, was wir am besten können.
Diese Liste von Java-Debugging-Tools hilft Ihnen, Ihre Optionen schnell zu bewerten, damit Sie das Beste für den Job finden können.
Finden und beheben Sie Java-Fehler, Ausnahmen, Bugs & Abstürze mit Leichtigkeit. Raygun erfasst jeden Absturz und meldet ihn in Echtzeit
Raygun Crash Reporting
Eines der schwierigsten Dinge bei der Fehlersuche ist, dass Sie nicht immer wissen, welche Fehler bei Ihren Benutzern auftreten. Raygun Error Monitoring hat alles, was Sie brauchen, um Bugs, Fehler und Abstürze zu entdecken, die in der Produktion und darüber hinaus auftreten.
Raygun4Java ermöglicht es Ihnen, standardmäßig Ausnahmen von Desktop- und Konsolen-Java- und Scala-Anwendungen zu senden. Sie können alle Ihre Ausnahmen an Ihr Raygun-Dashboard senden, so dass Sie eine detaillierte Diagnose für jeden Fehler sehen können, einschließlich vollständiger Stack Traces, Daten in Bezug auf Methoden-, Funktions- und Klassennamen und mehr.
Die Installation und Konfiguration dauert nicht länger als ein paar Minuten. Raygun kann jedes Objekt, das von der Klasse Throwable
erbt, verarbeiten. Erweiterte Funktionen wie Breadcrumbs, Filter und benutzerdefinierte Tags erleichtern den Debugging-Prozess ebenfalls.
Eclipse
Eclipse ist eine beliebte Open-Source-IDE, die für die Java-Entwicklung verwendet wird, aber auch Plugins für andere Sprachen wie PHP, Python, Ruby und C# enthält. Die Eclipse-Plattform verfügt über fortschrittliche Debugging-Funktionen, mit denen Sie Ihren Code während der Ausführung überprüfen können, was sie zu einem vielseitigen Werkzeug macht. Ein großer Vorteil ist, dass der Eclipse-Workflow bequem ist, weil Sie dieselbe Plattform sowohl für die Entwicklung als auch für das Debugging verwenden können.
Eine der besten Funktionen von Eclipse ist die Debug-Perspektive, die relevante Debugging-Informationen wie Variablen, Haltepunkte, Threads und Aufrufstapel nebeneinander anzeigt.
Mit Eclipse können Sie auch Threads anhalten und wieder aufnehmen, schrittweise durch die Programmausführung gehen, Werte untersuchen und Ausdrücke auswerten.
NetBeans
NetBeans ist eine weitere freie und quelloffene IDE. Wie bei Eclipse sind die Debugging-Funktionen in die Plattform integriert, so dass Sie nur die IDE herunterladen müssen, um das Debugging-Tool zu erhalten.
NetBeans gibt es in verschiedenen Download-Paketen; für Java benötigen Sie entweder die Java SE oder die Java EE Edition. Letztere bietet auch Unterstützung für HTML5, JavaScript und die GlassFish- und Tomcat-Server, so dass sie die bessere Wahl für ernsthaftere Entwicklungsarbeit ist.
Der NetBeans Debugger hat viele ähnliche Funktionen wie Eclipse. In der Tat sind beide hervorragende Debugging-Tools, um den Quellcode zu untersuchen und Probleme wie Speicherlecks und Gleichzeitigkeitsprobleme zu identifizieren. NetBeans ermöglicht das Einrichten von Haltepunkten und bedingten Haltepunkten, das schrittweise Durchlaufen des Codes, das Umschalten von Threads und das Überwachen der Ausführung in Echtzeit.
NetBeans bietet Ihnen außerdem die praktische Funktion Visual Debugger, mit der Sie die visuellen Elemente Ihrer Java- und JavaFX-GUI-Anwendungen debuggen können. Mit dem visuellen Debugger können Sie Listener zu GUI-Aktionen hinzufügen, Komponenteneigenschaften und die Hierarchie der Komponenten anzeigen und den Quellcode lokalisieren.
Wenn Sie NetBeans verwenden, erhalten Sie auch Zugriff auf das integrierte NetBeans Profiler-Tool. Mit dem Profiler können Sie die Speichernutzung, die CPU-Leistung, den Thread-Status und andere Merkmale Ihrer Java-Anwendung überprüfen. Diese Funktionen helfen Ihnen dabei, die Geschwindigkeit und Speichernutzung zu optimieren und den Overhead zu reduzieren.
Da NetBeans Anfang 2018 von der Apache Software Foundation übernommen wurde, können Sie in Zukunft weitere Integrationen und erweiterte Funktionen erwarten – zumal Apache bereits viele Java-Projekte vom Maven-Build-Tool bis zum Tomcat-Server hostet.
IntelliJ IDEA
Neben Eclipse und NetBeans ist IntelliJ IDEA die dritte IDE, die Java-Entwickler üblicherweise nennen, wenn man sie fragt, welche IDE sie verwenden. IntelliJ IDEA wird von JetBrains entwickelt und ist sowohl als Open-Source-Community-Version als auch als kostenpflichtige kommerzielle Version erhältlich. Es handelt sich hauptsächlich um eine Java-IDE, aber Sie können sie auch mit anderen JVM-Sprachen wie Groovy, Kotlin und Scala verwenden. Die kommerzielle Version unterstützt auch viele JVM- und Nicht-JVM-Frameworks, wie Spring, Java EE, Play, Grails, GWT und Vaadin. Noch besser ist, dass beide Editionen Unterstützung für die Android-Entwicklung bieten – ideal, wenn Sie mehrere Projekte betreiben. Genau wie die oben erwähnten IDE-Debugger enthält auch IntelliJ IDEA einen integrierten Java-Debugger, der sofort einsatzbereit ist.
IntelliJ IDEA verfügt über alle Standard-Debugging-Funktionen, die Sie von einem erstklassigen Debugging-Tool erwarten. IntelliJ IDEA ermöglicht es Ihnen,:
- Erstellen und Konfigurieren von Breakpoints und Watchpoints
- Auswertungen von Ausdrücken
- Pausieren und Fortsetzen der Debugger-Sitzung
- Untersuchen von angehaltenen Threads
- Schreiten durch den Quellcode
- Analysieren der Speichernutzung
- … Und mehr
Sie können IntelliJ IDEA auch zum Debuggen von Java-Anwendungen aus der Ferne verwenden.
Das Inline-Debugging ist die interessanteste und einzigartigste Funktion von IntelliJ IDEA. Der Inline-Debugger zeigt die Werte von Variablen innerhalb des Codes an, direkt neben der Zeile, in der sie verwendet wurden. Immer wenn sich der Wert der Variable ändert, hebt der Inline-Debugger ihn mit einer anderen Farbe hervor. Um die Werte zu überprüfen, müssen Sie nicht zum Debug-Fenster wechseln oder den Mauszeiger über jede Variable einzeln bewegen, wie es bei Eclipse und NetBeans der Fall ist.
Visual Studio Code
Sie müssen nicht immer eine IDE verwenden, um Java-Anwendungen zu debuggen. Microsofts plattformübergreifender Quellcode-Editor Visual Studio Code ermöglicht durch die Erweiterung Debugger for Java auch das Java-Debugging.
Wenn Sie Visual Studio Code ohnehin für die Code-Bearbeitung verwenden und ein leichtgewichtiges und einfach zu bedienendes Debugging-Tool für Ihren Java-Entwicklungs-Workflow benötigen, ist Visual Studio Code eine gute Wahl. Obwohl es nicht so viele fortgeschrittene Funktionen wie IDE-Debugger hat, weiß es alles, was Sie für eine schnelle Debugging-Sitzung brauchen.
Der Java-Debugger von Visual Studio Code basiert auf Java Debug Server, der eine andere Visual Studio Code-Erweiterung namens Language Support for Java von Red Hat erweitert.
VS Code Debugger ermöglicht es Ihnen,:
- Lokales und ferngesteuertes Debugging
- Einrichten von bedingten Haltepunkten und Logpunkten
- Schreiten Sie durch den Quellcode
- Untersuchen und Beobachten von Variablen
- Betrachten von Aufruf Stacks
- Mehrere Threads debuggen
- Ausdrücke auswerten
- Hot Code Replacement verwenden
Die Debugger-Erweiterung von VS Code kommt mit vielen Konfigurationsoptionen, die man in den Docs nachlesen kann.
Der Java Debugger (jdb)
Wenn Sie keine externe Software für das Java-Debugging verwenden können (oder wollen), ist es auch möglich, Java-Anwendungen von der Kommandozeile aus zu debuggen. Der Java Debugger (jdb) ist ein einfacher Befehlszeilen-Debugger, der von Oracle bereitgestellt wird. Er ist das Äquivalent zum GNU Debugger (gdb) für die Java Virtual Machine. Der Java Debugger ist im Java SE Development Kit enthalten. Wenn Sie also das JDK auf Ihrem Rechner installiert haben, brauchen Sie nichts weiter zu tun. Sie können den Debugger mit dem Befehl jdb
starten und mit dem Befehl help
auf die Liste der Befehle zugreifen.
Der Java Debugger ist eigentlich eine Demonstration der Java Platform Debugger Architecture (JDPA). JDPA ist eine Sammlung von drei Schnittstellen: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol), und JDI (Java Debug Interface). JDPA ist eine Debugging-Architektur, die Entwicklern Werkzeuge zur Verfügung stellt, um ihre eigenen Debugger-Anwendungen zu erstellen – jdb ist nur eine der möglichen Anwendungen von JDPA.
Mit dem jdb-Debugger können Sie ausführliche Debugging-Sitzungen in der Befehlszeile durchführen. Mit jdb debugger können Sie:
- Listen, suspendieren, und wiederaufnehmen
- Ausdrücke auswerten
- Alle Objektinformationen drucken
- Haltepunkte setzen
- Felder beobachten
- Methodenaufrufe verfolgen
- Schritte durch Code
- Garbage Collection eines Objekts zulassen und verhindern
Ein Kommandozeilen-Debugger ist aufgrund seiner Komplexität nicht die beste Wahl für die tägliche Entwicklungsarbeit. Dennoch hat er einen Vorteil – die Portabilität. Sie können ihn ohne großen Aufwand auf einem Server einrichten, da Sie den Server nicht mit einem entfernten IDE-Debugger verbinden müssen. Das alles macht jdb zu einem idealen Tool für die schnelle Fehlersuche, die in einer Produktionsumgebung wichtig ist.
Welches Java-Debugging-Tool eignet sich am besten für Ihr Projekt?
Das Debugging von Java muss keine große Herausforderung sein. Wenn Sie eines dieser Debugging-Tools verwenden, wird der Debugging-Prozess viel schneller ablaufen. Jeder Anwendungsfall ist anders, aber die Bewertung Ihrer Optionen wird Ihnen helfen, das richtige Tool für Ihr Projekt zu wählen.
Das Debuggen von Java ist einfacher, wenn Sie wissen, wo der Fehler liegt! Raygun Crash Reporting for Java hilft Entwicklern, Probleme schneller und genauer zu erkennen, zu diagnostizieren und zu beheben. Testen Sie es 14 Tage lang kostenlos.