JDK est un kit de développement logiciel pour le langage Java. Sans lui, les programmes Java ne peuvent pas être compilés. Actuellement, il existe de nombreux outils JDK devant tout le monde, mais les plus couramment utilisés sont java.exe, javac.exe, jar, etc. A part ça, qu'y a-t-il d'autre ? L'auteur de cet article, Joe, a de nombreuses années d'expérience en développement Java. Il a partagé un article sur son blog : 5 outils JDK que tout développeur Java devrait connaître. L'auteur l'a compilé et voici la traduction.
Actuellement, de nombreux outils peuvent être liés au JDK Java, parmi lesquels java.exe et javac.exe sont des armes essentielles pour tout ingénieur Java. En même temps, il existe de nombreux autres outils Java. JDK Les outils sont sous les yeux de tous. La plupart des programmeurs Java n'ont jamais utilisé ces outils, mais s'ils le font, ils rendront votre travail plus efficace.
J'ai présenté ces outils dans des tutoriels précédents. Maintenant, je vous présente les 5 outils les plus importants.
1.javap
javap est un désassembleur de fichiers de classe Java qui peut afficher le bytecode généré par le compilateur Java et constitue un bon outil pour analyser le code. Utilisons javap pour compiler ce code Hello World, puis décomposons-le.
public class HelloWorld { public static void main(String... args) { System.out.println("Hello World!"); } }
C:UsersCycleDesktop>javap HelloWorld
Je n'ai transmis aucun paramètre, j'ai juste exécuté l'outil javap et j'ai obtenu le résultat ci-dessus. Par défaut, il affichera le package, les champs protégés et publics et les méthodes des classes Java.
Compiled from "HelloWorld.java" public class HelloWorld { public HelloWorld(); public static void main(java.lang.String...); }
C:UsersCycleDesktop>javap -c HelloWorld
Si vous passez le paramètre -c à javap, vous obtiendrez le résultat ci-dessus. Il s'agit d'une très bonne information, et les instructions générées comme celle-ci peuvent nous aider à mieux comprendre la JVM.
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 est un outil de surveillance et d'analyse de machine virtuelle Java. Cet outil fournit une fenêtre d'interface graphique et peut comprendre intuitivement les informations d'exécution Java. la demande. jvisualvm intègre de nombreux outils, tels que jmp, jinfo, jstat, jstack, JConsole, etc. Il fait partie du JDK depuis la mise à jour 7 du JDK 6.
Dans cet article sur la surveillance et l'analyse du garbage collection Java, j'ai utilisé jvisualvm. Vous souhaiterez peut-être aller voir comment utiliser jvisualvm.
3.jcmd
jcmd est principalement utilisé pour envoyer des requêtes de commande de diagnostic à la JVM Java Lorsqu'il n'y a pas de liste de paramètres jcmd dans le processus JVM, jcmd s'exécutera. immédiatement . C'est l'équivalent de l'outil jps. J'ai démarré jconsole et je l'ai passé en paramètre à jcmd. J'ai obtenu les résultats suivants. Cela peut également être obtenu via l'identifiant du processus (pid).
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 affiche la durée d'exécution spécifique de l'application Java.
Lors du débogage, les paramètres suivants peuvent être utilisés pour le débordement de pile de threads de verrous simultanés.
jcmdThread.print -l
4.jhat
Le nom complet de jhat est un outil d'analyse de tas Java. Il est principalement utilisé pour analyser et parcourir les fichiers de tas, ce qui ressemble parfois davantage à un outil de visualisation. jhat analyse le vidage du tas et démarre un serveur Web, puis l'utilisateur peut afficher le tas dans le navigateur. jhat prend en charge le langage de requête objet (OQL) et certaines requêtes prédéfinies.
Pour utiliser l'outil jmap pour générer un tas, nous devons utiliser le paramètre -dump Voici la liste des paramètres que l'outil jhat peut utiliser :
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"
J'ai créé. un vidage de tas pour le fichier d'application jconsole et utilisez la commande suivante pour exécuter l'ID de processus 3344 :
jmap -dump:format=b,file=heap.bin 3344
Maintenant que le vidage de tas le fichier est prêt, exécutez la commande suivante Et un service sera démarré :
jmap -dump:format=b,file=heap.bin 3344
Le résultat sera affiché dans la console :
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.
Dans le navigateur Entrez : http://localhost:7000/ et les détails du tas dump apparaîtront :
5.Oracle Java Mission Control
Dans le cadre de la stratégie d'intégration JVM, il est principalement utilisé pour unifier les VM HotSpot et JRockit. Actuellement, JRockit Mission Control est disponible dans la version standard de Java SE. Java Mission Control (JMC) fonctionne avec Java Flight Recorder pour HotSpot JVM pour enregistrer les données de base et les événements. Il s'agit d'un outil de réglage qui fonctionne avec Oracle JDK. Lorsqu'un problème survient, ces données peuvent être utilisées pour l'analyse.
Les développeurs peuvent utiliser la commande jmc pour créer des outils JMC.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!