Heim > Java > javaLernprogramm > 5 JDK-Tools, die jeder Java-Entwickler kennen sollte

5 JDK-Tools, die jeder Java-Entwickler kennen sollte

Y2J
Freigeben: 2017-04-18 14:11:06
Original
1798 Leute haben es durchsucht

JDK ist ein Software-Entwicklungskit für die Java-Sprache. Ohne es können Java-Programme nicht kompiliert werden. Derzeit gibt es viele JDK-Tools, aber die am häufigsten verwendeten sind java.exe, javac.exe, jar usw. Was gibt es außer diesen noch? Der Autor dieses Artikels, Joe, verfügt über langjährige Erfahrung in der Java-Entwicklung. Er hat einen Artikel in seinem Blog geteilt: 5 JDK-Tools, die jeder Java-Entwickler kennen sollte. Der Autor hat ihn zusammengestellt und das Folgende ist die Übersetzung.

Derzeit gibt es viele Tools, die an Java JDK gebunden werden können, darunter java.exe und javac.exe, die für jeden Java-Ingenieur unverzichtbar sind. Gleichzeitig gibt es viele andere Java-Tools JDKs Die Tools sind vor Augen aller. Die meisten Java-Programmierer haben diese Tools noch nie verwendet, aber wenn sie es tun, werden sie Ihre Arbeit effektiver machen.

5 JDK-Tools, die jeder Java-Entwickler kennen sollte

Ich habe diese Tools in früheren Tutorials vorgestellt. Jetzt stelle ich Ihnen die 5 wichtigsten Tools vor.

 1.javap

javap ist ein Java-Klassendatei-Disassembler, der den vom Java-Compiler generierten Bytecode anzeigen kann und ein gutes Werkzeug zum Analysieren von Code ist. Lassen Sie uns Javap verwenden, um diesen Hello World-Code zu kompilieren und ihn dann aufzuschlüsseln.

public class HelloWorld {
	public static void main(String... args) {
		System.out.println("Hello World!");
	}
}
Nach dem Login kopieren
C:UsersCycleDesktop>javap HelloWorld

Ich habe keine Parameter übergeben, ich habe einfach das Javap-Tool ausgeführt und das obige Ergebnis erhalten. Standardmäßig werden das Paket, geschützte, öffentliche Felder und Methoden von Java-Klassen ausgegeben.

Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
  public static void main(java.lang.String...);
}
Nach dem Login kopieren
C:UsersCycleDesktop>javap -c HelloWorld

Wenn Sie den Parameter -c an javap übergeben, erhalten Sie das obige Ergebnis. Dies ist eine sehr gute Information, und die so ausgegebenen Anweisungen können uns helfen, die JVM besser zu verstehen.

Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."":()V
       4: return

  public static void main(java.lang.String...);
    Code:
       0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #3                  // String Hello World!
       5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: return
}
Nach dem Login kopieren

 2.jvisualvm

jvisualvm ist ein Java Virtual Machine-Überwachungs- und Analysetool. Dieses Tool bietet ein grafisches Schnittstellenfenster und kann Java Runtime-Informationen intuitiv verstehen die Anwendung. jvisualvm integriert viele Tools wie jmp, jinfo, jstat, jstack, JConsole usw. Es ist seit JDK 6 Update 7 Teil des JDK.

5 JDK-Tools, die jeder Java-Entwickler kennen sollte

In diesem Artikel über die Überwachung und Analyse der Java-Garbage Collection habe ich jvisualvm verwendet. Vielleicht möchten Sie einen Blick auf die Verwendung von jvisualvm werfen.

 3.jcmd

jcmd wird hauptsächlich zum Senden von Diagnosebefehlsanforderungen an die Java JVM verwendet. Wenn im JVM-Prozess keine jcmd-Parameterliste vorhanden ist, wird jcmd ausgeführt sofort . Dies entspricht dem jps-Tool, das ich als Parameter an jcmd übergeben habe. Dies kann auch über die Prozess-ID (pid) erreicht werden.

C:\Users\Cycle>jconsole

C:\Users\Cycle>jcmd JConsole help
3344:
The following commands are available:
JFR.stop
JFR.start
JFR.dump
JFR.check
VM.native_memory
VM.check_commercial_features
VM.unlock_commercial_features
ManagementAgent.stop
ManagementAgent.start_local
ManagementAgent.start
Thread.print
GC.class_stats
GC.class_histogram
GC.heap_dump
GC.run_finalization
GC.run
VM.uptime
VM.flags
VM.system_properties
VM.command_line
VM.version
help
Nach dem Login kopieren
C:UsersCycle>jcmd JConsole VM.uptime
3344:289.977 s

 VM.uptime zeigt die spezifische Laufzeit der Java-Anwendung an.

Beim Debuggen können die folgenden Parameter für den Thread-Stack-Überlauf gleichzeitiger Sperren verwendet werden.

jcmd Thread.print -l

 4.jhat

 Der vollständige Name von jhat ist ein Java-Heap-Analysetool. Es wird hauptsächlich zum Parsen und Durchsuchen von Heap-Dateien verwendet und ähnelt manchmal eher einem Visualisierungstool. jhat analysiert den Heap-Dump und startet einen Webserver, und dann kann der Benutzer den Heap im Browser anzeigen. jhat unterstützt die Object Query Language (OQL) und einige vorgefertigte Abfragen.

Um das JMAP-Tool zum Generieren eines Heap-Dumps zu verwenden, sollten wir den Parameter -dump verwenden. Das Folgende ist die Liste der Parameter, die das Jhat-Tool verwenden kann:

C:\Users\Cycle>jhat -help
Usage:  jhat [-stack ] [-refs ] [-port ] [-baseline ] [-debug ] [-version] [-h|-help] 

        -J          Pass  directly to the runtime system. For
                          example, -J-mx512m to use a maximum heap size of 512MB
        -stack false:     Turn off tracking object allocation call stack.
        -refs false:      Turn off tracking of references to objects
        -port :     Set the port for the HTTP server.  Defaults to 7000
        -exclude :  Specify a file that lists data members that should
                          be excluded from the reachableFrom query.
        -baseline : Specify a baseline object dump.  Objects in
                          both heap dumps with the same ID and same class will
                          be marked as not being "new".
        -debug :     Set debug level.
                            0:  No debug output
                            1:  Debug hprof file parsing
                            2:  Debug hprof file parsing, no server
        -version          Report version number
        -h|-help          Print this help and exit
                    The file to read

For a dump file that contains multiple heap dumps,
you may specify which dump in the file
by appending "#" to the file name, i.e. "foo.hprof#3".

All boolean options default to "true"
Nach dem Login kopieren

Ich habe es erstellt Erstellen Sie einen Heap-Dump für die Jconsole-Anwendungsdatei und verwenden Sie den folgenden Befehl, um die Prozess-ID 3344 auszuführen:

jmap -dump:format=b,file=heap.bin 3344

Jetzt ist der Heap-Dump Datei ist fertig, führen Sie den folgenden Befehl aus. Und ein Dienst wird gestartet:

jmap -dump:format=b,file=heap.bin 3344

Das Ergebnis wird in der Konsole ausgegeben:

C:\Users\Cycle\Desktop>jhat heap.bin
Reading from heap.bin...
Dump file created Sun Nov 16 19:26:35 IST 2014
Snapshot read, resolving...
Resolving 641209 objects...
Chasing references, expect 128 dots..................
Eliminating duplicate references.....................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
Nach dem Login kopieren

Geben Sie im Browser Folgendes ein: http://localhost:7000/ und die Details des Heap-Dumps werden angezeigt:

5 JDK-Tools, die jeder Java-Entwickler kennen sollte

 5.Oracle Java Mission Control

Als Teil der JVM-Integrationsstrategie wird es hauptsächlich zur Vereinheitlichung von HotSpot- und JRockit-VMs verwendet. Derzeit ist JRockit Mission Control in der Standardversion von Java SE verfügbar. Java Mission Control (JMC) arbeitet mit Java Flight Recorder für HotSpot JVM zusammen, um Kerndaten und Ereignisse aufzuzeichnen. Es ist ein Tuning-Tool und funktioniert mit Oracle JDK. Sobald ein Problem auftritt, können diese Daten zur Analyse verwendet werden.

Entwickler können den Befehl jmc verwenden, um JMC-Tools zu erstellen.

5 JDK-Tools, die jeder Java-Entwickler kennen sollte

5 JDK-Tools, die jeder Java-Entwickler kennen sollte

Das obige ist der detaillierte Inhalt von5 JDK-Tools, die jeder Java-Entwickler kennen sollte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage