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.
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!"); } }
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...); }
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 }
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.
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
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.
jcmdThread.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"
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.
Geben Sie im Browser Folgendes ein: http://localhost:7000/ und die Details des Heap-Dumps werden angezeigt:
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.
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!