Wie man einen Laufprozess in Java verfolgt

Wie man einen Laufprozess in Java verfolgt
Eine Stapelverfolgung ist nichts anderes als der Ort der Ausnahmen in Java -Programmen, oder Sie können sagen, dass er verwendet wird, um diese Zeilen eines Codes zu finden, in dem Ausnahmen auftreten. Eine Stapelverfolgung funktioniert genauso wie ein Stapel Papiere auf Ihrem Schreibtisch zuerst, letztendlich. Sie fügen dem Stapel Papiere hinzu und nehmen sie dann in umgekehrter Reihenfolge heraus. Es enthält Details zu einem Prozess oder Betrieb, den Ihr Code aufgerufen hat. Infolgedessen ist die Java -Stack -Trace eine Abfolge von Frames, die mit der aktuellen Methode beginnen und mit der Gründung des Programms endet.

Der Stack, auch als Laufzeit oder Call Stack bekannt, handelt. Java Virtual Machine (JVM) generiert automatisch eine Stapelverfolgung, wenn eine Ausnahme auftritt. Dieser Artikel enthält Ihnen also die Richtlinie, wie Sie die Stapelverfolgung des Laufprozesses in Java verwenden können.

Was ist Stapelverfolgung in Java

Bevor Sie eine Java -Datei erstellen, müssen Sie sicherstellen, dass Sie die JAVA Development Kit (JDK) -Anwendung in Ihrem Linux -Betriebssystem installiert haben. Andernfalls können Sie ein JAVA -Programm durch Eingeben nicht ausführen:

$ sudo apt installieren Standard-JDK

Nach der Installation dieser Voraussetzung müssen Sie eine Java -Datei und eine der einfachsten Möglichkeiten erstellen, indem Sie einen beliebigen Texteditor verwenden, indem Sie eingeben:

$ nano javastacktrace.Java

Nach dem Erstellen einer Java -Datei besteht der nächste Schritt darin, einen Code darin zu schreiben und zu speichern, der unten angezeigt werden kann:

Nach dem Speichern einer Java -Datei besteht der nächste Schritt darin, sie zu kompilieren und auszuführen:

$ Javac Javastacktrace.Java
$ java javastacktrace

Sie können sehen, dass wir geschrieben haben Demofun3 () als letzte Funktion beim Schreiben eines Code Dumpstack () Dadurch werden die Ausgabe auf dem Bildschirm angezeigt. Die verbleibenden Funktionen beginnen aus Demofun2 () Zu Demofun () wird danach in umgekehrter Reihenfolge ausführen und die hauptsächlich() Die Funktion wird unten angezeigt, da sie für die Start des Programms verantwortlich ist und auch andere Funktionen aufruft.

Sie können sagen, dass der Stack -Ausführungspunkt von der ersten Zeile beginnt und der Stack -Rahmen von der zweiten Zeile bis zur letzten Zeile beginnt, die die gesamte Stapelspur ausmacht. Wir können beobachten, dass die Methode, die zuerst durchgeführt wird.

Wie man die Spur eines Laufprozesses stapelt

JStack ist ein großartiges Tool, um Probleme mit der Laufzeit zu beheben, insbesondere wenn Ihre Anwendung handelt und mehr CPU oder Speicher verbraucht als erwartet, dann können Sie die Anwendung Fehler beheben. Lassen Sie es uns in Java implementieren:

öffentliche Klasse Forcedump
public static void main (String [] args) löst Ausnahme aus
versuchen
while (wahr)
Gewinde.Schlaf (2000);

catch (nullPointerexception Demo)
Demo.printStacktrace ();


Danach können Sie eine Java -Datei mit einem beliebigen Texteditor erstellen, wie wir einen Nano -Texteditor verwenden, wie unten gezeigt

$ nano erzwungen.Java

Danach kompilieren Sie es mit:

$ javac erzwungen.Java

Und ausführen:

$ java erzwungen

Nach dem Ausführen dieses Programms startet ein Hintergrundprozess. So finden Sie die Prozess -ID (PID), öffnen Sie ein anderes Terminalfenster und verwenden Sie:

$ PS Aux | Grep erzwungen

Anschließend finden Sie zusätzliche Informationen zu Threads, die in einem Prozess ausgeführt werden, indem Sie den folgenden Befehl verwenden:

$ jstack

Die Prozess -ID ist 4457, wie im Bild gezeigt:

$ JStack 4457

Abschluss

Eine Stack Trace ist eine Sammlung von Stapelrahmen, die einen bestimmten Zeitpunkt während der Ausführung eines Programms veranschaulicht. Es enthält Details zu einer Methode oder Funktion, die Ihr Code aufgerufen hat. Daher ist die Java Stack Trace eine Reihe von Frames, die mit der aktuellen Methode beginnt und mit dem Beginn des Programms endet. In diesem Artikel haben wir Ihnen gezeigt, wie Sie den Stapelverfolgungsprozess in der Java -Programmiersprache implementieren können.