1JCMD(1) JDK Commands JCMD(1)
2
3
4
6 jcmd - send diagnostic command requests to a running Java Virtual Ma‐
7 chine (JVM)
8
10 jcmd [pid | main-class] command... | PerfCounter.print | -f filename
11
12 jcmd [-l]
13
14 jcmd -h
15
16 pid When used, the jcmd utility sends the diagnostic command request
17 to the process ID for the Java process.
18
19 main-class
20 When used, the jcmd utility sends the diagnostic command request
21 to all Java processes with the specified name of the main class.
22
23 command
24 The command must be a valid jcmd command for the selected JVM.
25 The list of available commands for jcmd is obtained by running
26 the help command (jcmd pid help) where pid is the process ID for
27 the running Java process. If the pid is 0, commands will be
28 sent to all Java processes. The main class argument will be
29 used to match, either partially or fully, the class used to
30 start Java. If no options are given, it lists the running Java
31 process identifiers with the main class and command-line argu‐
32 ments that were used to launch the process (the same as using
33 -l).
34
35 Perfcounter.print
36 Prints the performance counters exposed by the specified Java
37 process.
38
39 -f filename
40 Reads and executes commands from a specified file, filename.
41
42 -l Displays the list of Java Virtual Machine process identifiers
43 that are not running in a separate docker process along with the
44 main class and command-line arguments that were used to launch
45 the process. If the JVM is in a docker process, you must use
46 tools such as ps to look up the PID.
47
48 Note:
49
50 Using jcmd without arguments is the same as using jcmd -l.
51
52 -h Displays the jcmd utility's command-line help.
53
55 The jcmd utility is used to send diagnostic command requests to the
56 JVM. It must be used on the same machine on which the JVM is running,
57 and have the same effective user and group identifiers that were used
58 to launch the JVM. Each diagnostic command has its own set of argu‐
59 ments. To display the description, syntax, and a list of available ar‐
60 guments for a diagnostic command, use the name of the command as the
61 argument. For example:
62
63 jcmd pid help command
64
65 If arguments contain spaces, then you must surround them with single or
66 double quotation marks (' or "). In addition, you must escape single
67 or double quotation marks with a backslash (\) to prevent the operating
68 system shell from processing quotation marks. Alternatively, you can
69 surround these arguments with single quotation marks and then with dou‐
70 ble quotation marks (or with double quotation marks and then with sin‐
71 gle quotation marks).
72
73 If you specify the process identifier (pid) or the main class
74 (main-class) as the first argument, then the jcmd utility sends the di‐
75 agnostic command request to the Java process with the specified identi‐
76 fier or to all Java processes with the specified name of the main
77 class. You can also send the diagnostic command request to all avail‐
78 able Java processes by specifying 0 as the process identifier.
79
81 The command must be a valid jcmd diagnostic command for the selected
82 JVM. The list of available commands for jcmd is obtained by running
83 the help command (jcmd pid help) where pid is the process ID for a run‐
84 ning Java process. If the pid is 0, commands will be sent to all Java
85 processes. The main class argument will be used to match, either par‐
86 tially or fully, the class used to start Java. If no options are giv‐
87 en, it lists the running Java process identifiers that are not in sepa‐
88 rate docker processes along with the main class and command-line argu‐
89 ments that were used to launch the process (the same as using -l).
90
91 The following commands are available:
92
93 help [options] [arguments]
94 For more information about a specific command.
95
96 arguments:
97
98 • command name: The name of the command for which we want help
99 (STRING, no default value)
100
101 Note:
102
103 The following options must be specified using either key or
104 key=value syntax.
105
106 options:
107
108 • -all: (Optional) Show help for all commands (BOOLEAN, false) .
109
110 Compiler.codecache
111 Prints code cache layout and bounds.
112
113 Impact: Low
114
115 Permission: java.lang.management.ManagementPermission(monitor)
116
117 Compiler.codelist
118 Prints all compiled methods in code cache that are alive.
119
120 Impact: Medium
121
122 Permission: java.lang.management.ManagementPermission(monitor)
123
124 Compiler.queue
125 Prints methods queued for compilation.
126
127 Impact: Low
128
129 Permission: java.lang.management.ManagementPermission(monitor)
130
131 Compiler.directives_add *filename* *arguments*
132 Adds compiler directives from a file.
133
134 Impact: Low
135
136 Permission: java.lang.management.ManagementPermission(monitor)
137
138 arguments:
139
140 filename: The name of the directives file (STRING, no default
141 value)
142
143 Compiler.directives_clear
144 Remove all compiler directives.
145
146 Impact: Low
147
148 Permission: java.lang.management.ManagementPermission(monitor)
149
150 Compiler.directives_print
151 Prints all active compiler directives.
152
153 Impact: Low
154
155 Permission: java.lang.management.ManagementPermission(monitor)
156
157 Compiler.directives_remove
158 Remove latest added compiler directive.
159
160 Impact: Low
161
162 Permission: java.lang.management.ManagementPermission(monitor)
163
164 GC.class_histogram [options]
165 Provides statistics about the Java heap usage.
166
167 Impact: High --- depends on Java heap size and content.
168
169 Permission: java.lang.management.ManagementPermission(monitor)
170
171 Note:
172
173 The options must be specified using either key or key=value syn‐
174 tax.
175
176 options:
177
178 • -all: (Optional) Inspects all objects, including unreachable
179 objects (BOOLEAN, false)
180
181 GC.finalizer_info
182 Provides information about the Java finalization queue.
183
184 Impact: Medium
185
186 Permission: java.lang.management.ManagementPermission(monitor)
187
188 GC.heap_dump [options] [arguments]
189 Generates a HPROF format dump of the Java heap.
190
191 Impact: High --- depends on the Java heap size and content. Re‐
192 quest a full GC unless the -all option is specified.
193
194 Permission: java.lang.management.ManagementPermission(monitor)
195
196 Note:
197
198 The following options must be specified using either key or
199 key=value syntax.
200
201 options:
202
203 • -all: (Optional) Dump all objects, including unreachable ob‐
204 jects (BOOLEAN, false)
205
206 arguments:
207
208 • filename: The name of the dump file (STRING, no default value)
209
210 GC.heap_info
211 Provides generic Java heap information.
212
213 Impact: Medium
214
215 Permission: java.lang.management.ManagementPermission(monitor)
216
217 GC.run Calls java.lang.System.gc().
218
219 Impact: Medium --- depends on the Java heap size and content.
220
221 GC.run_finalization
222 Calls java.lang.System.runFinalization().
223
224 Impact: Medium --- depends on the Java content.
225
226 JFR.check [options]
227 Show information about a running flight recording
228
229 Impact: Low
230
231 Note:
232
233 The options must be specified using either key or key=value syn‐
234 tax. If no parameters are entered, information for all active
235 recordings is shown.
236
237 options:
238
239 • name: (Optional) Name of the flight recording. (STRING, no
240 default value)
241
242 • verbose: (Optional) Flag for printing the event settings for
243 the recording (BOOLEAN, false)
244
245 JFR.configure [options]
246 Set the parameters for a flight recording
247
248 Impact: Low
249
250 Note:
251
252 The options must be specified using either key or key=value syn‐
253 tax. If no parameters are entered, the current settings are
254 displayed.
255
256 options:
257
258 • globalbuffercount: (Optional) Number of global buffers. This
259 option is a legacy option: change the memorysize parameter to
260 alter the number of global buffers. This value cannot be
261 changed once JFR has been initalized. (STRING, default deter‐
262 mined by the value for memorysize)
263
264 • globalbuffersize: (Optional) Size of the global buffers, in
265 bytes. This option is a legacy option: change the memorysize
266 parameter to alter the size of the global buffers. This value
267 cannot be changed once JFR has been initalized. (STRING, de‐
268 fault determined by the value for memorysize)
269
270 • maxchunksize: (Optional) Maximum size of an individual data
271 chunk in bytes if one of the following suffixes is not used:
272 'm' or 'M' for megabytes OR 'g' or 'G' for gigabytes. This
273 value cannot be changed once JFR has been initialized.
274 (STRING, 12M)
275
276 • memorysize: (Optional) Overall memory size, in bytes if one of
277 the following suffixes is not used: 'm' or 'M' for megabytes
278 OR 'g' or 'G' for gigabytes. This value cannot be changed
279 once JFR has been initialized. (STRING, 10M)
280
281 • repositorypath: (Optional) Path to the location where record‐
282 ings are stored until they are written to a permanent file.
283 (STRING, The default location is the temporary directory for
284 the operating system. On Linux operating systems, the tempo‐
285 rary directory is /tmp. On Windwows, the temporary directory
286 is specified by the TMP environment variable.)
287
288 • stackdepth: (Optional) Stack depth for stack traces. Setting
289 this value greater than the default of 64 may cause a perfor‐
290 mance degradation. This value cannot be changed once JFR has
291 been initialized. (LONG, 64)
292
293 • thread_buffer_size: (Optional) Local buffer size for each
294 thread in bytes if one of the following suffixes is not used:
295 'k' or 'K' for kilobytes or 'm' or 'M' for megabytes. Over‐
296 riding this parameter could reduce performance and is not rec‐
297 ommended. This value cannot be changed once JFR has been ini‐
298 tialized. (STRING, 8k)
299
300 • samplethreads: (Optional) Flag for activating thread sampling.
301 (BOOLEAN, true)
302
303 JFR.dump [options]
304 Write data to a file while a flight recording is running
305
306 Impact: Low
307
308 Note:
309
310 The options must be specified using either key or key=value syn‐
311 tax. No options are required. The recording continues to run
312 after the data is written.
313
314 options:
315
316 • begin: (Optional) Specify the time from which recording data
317 will be included in the dump file. The format is specified as
318 local time. (STRING, no default value)
319
320 • end: (Optional) Specify the time to which recording data will
321 be included in the dump file. The format is specified as lo‐
322 cal time. (STRING, no default value)
323
324 Note: For both begin and end, the time must be in a format
325 that can be read by java.time.LocalTime::parse(STRING), ja‐
326 va.time.LocalDateTime::parse(STRING) or java.time.In‐
327 stant::parse(STRING). For example, "13:20:15",
328 "2020-03-17T09:00:00" or "2020-03-17T09:00:00Z".
329
330 Note: begin and end times correspond to the timestamps found
331 within the recorded information in the flight recording data.
332
333 Another option is to use a time relative to the current time
334 that is specified by a negative integer followed by "s", "m"
335 or "h". For example, "-12h", "-15m" or "-30s"
336
337 • filename: (Optional) Name of the file to which the flight
338 recording data is dumped. If no filename is given, a filename
339 is generated from the PID and the current date. The filename
340 may also be a directory in which case, the filename is gener‐
341 ated from the PID and the current date in the specified direc‐
342 tory. (STRING, no default value)
343
344 • maxage: (Optional) Length of time for dumping the flight
345 recording data to a file. (INTEGER followed by 's' for sec‐
346 onds 'm' for minutes or 'h' for hours, no default value)
347
348 • maxsize: (Optional) Maximum size for the amount of data to
349 dump from a flight recording in bytes if one of the following
350 suffixes is not used: 'm' or 'M' for megabytes OR 'g' or 'G'
351 for gigabytes. (STRING, no default value)
352
353 • name: (Optional) Name of the recording. If no name is given,
354 data from all recordings is dumped. (STRING, no default val‐
355 ue)
356
357 • path-to-gc-root: (Optional) Flag for saving the path to
358 garbage collection (GC) roots at the time the recording data
359 is dumped. The path information is useful for finding memory
360 leaks but collecting it can cause the application to pause for
361 a short period of time. Turn on this flag only when you have
362 an application that you suspect has a memory leak. (BOOLEAN,
363 false)
364
365 JFR.start [options]
366 Start a flight recording
367
368 Impact: Low
369
370 Note:
371
372 The options must be specified using either key or key=value syn‐
373 tax. If no parameters are entered, then a recording is started
374 with default values.
375
376 options:
377
378 • delay: (Optional) Length of time to wait before starting to
379 record (INTEGER followed by 's' for seconds 'm' for minutes or
380 'h' for hours, 0s)
381
382 • disk: (Optional) Flag for also writing the data to disk while
383 recording (BOOLEAN, true)
384
385 • dumponexit: (Optional) Flag for writing the recording to disk
386 when the Java Virtual Machine (JVM) shuts down. If set to
387 'true' and no value is given for filename, the recording is
388 written to a file in the directory where the process was
389 started. The file name is a system-generated name that con‐
390 tains the process ID, the recording ID and the current time
391 stamp. (For example: id-1-2019_12_12_10_41.jfr) (BOOLEAN,
392 false)
393
394 • duration: (Optional) Length of time to record. Note that 0s
395 means forever (INTEGER followed by 's' for seconds 'm' for
396 minutes or 'h' for hours, 0s)
397
398 • filename: (Optional) Name of the file to which the flight
399 recording data is written when the recording is stopped. If
400 no filename is given, a filename is generated from the PID and
401 the current date and is placed in the directory where the
402 process was started. The filename may also be a directory in
403 which case, the filename is generated from the PID and the
404 current date in the specified directory. (STRING, no default
405 value)
406
407 • maxage: (Optional) Maximum time to keep the recorded data on
408 disk. This parameter is valid only when the disk parameter is
409 set to true. Note 0s means forever. (INTEGER followed by 's'
410 for seconds 'm' for minutes or 'h' for hours, 0s)
411
412 • maxsize: (Optional) Maximum size of the data to keep on disk
413 in bytes if one of the following suffixes is not used: 'm' or
414 'M' for megabytes OR 'g' or 'G' for gigabytes. This parameter
415 is valid only when the disk parameter is set to 'true'. The
416 value must not be less than the value for the maxchunksize pa‐
417 rameter set with the JFR.configure command. (STRING, 0 (no
418 maximum size))
419
420 • name: (Optional) Name of the recording. If no name is provid‐
421 ed, a name is generated. Make note of the generated name that
422 is shown in the response to the command so that you can use it
423 with other commands. (STRING, system-generated default name)
424
425 • path-to-gc-root: (Optional) Flag for saving the path to
426 garbage collection (GC) roots at the end of a recording. The
427 path information is useful for finding memory leaks but col‐
428 lecting it is time consuming. Turn on this flag only when you
429 have an application that you suspect has a memory leak. If
430 the settings parameter is set to 'profile', then the informa‐
431 tion collected includes the stack trace from where the poten‐
432 tial leaking object was allocated. (BOOLEAN, false)
433
434 • settings: (Optional) Name of the settings file that identifies
435 which events to record. To specify more than one file, sepa‐
436 rate the names with a comma (','). Include the path if the
437 file is not in JAVA-HOME/lib/jfr. The following profiles are
438 included with the JDK in the JAVA-HOME/lib/jfr directory: 'de‐
439 fault.jfc': collects a predefined set of information with low
440 overhead, so it has minimal impact on performance and can be
441 used with recordings that run continuously; 'profile.jfc':
442 Provides more data than the 'default.jfc' profile, but with
443 more overhead and impact on performance. Use this configura‐
444 tion for short periods of time when more information is need‐
445 ed. Use none to start a recording without a predefined con‐
446 figuration file. (STRING, JAVA-HOME/lib/jfr/default.jfc)
447
448 Event settings and .jfc options can be specified using the fol‐
449 lowing syntax:
450
451 • option: (Optional) Specifies the option value to modify. To
452 list available options, use the JAVA_HOME/bin/jfr tool.
453
454 • event-setting: (Optional) Specifies the event setting value to
455 modify. Use the form: #= To add a new event setting, prefix
456 the event name with '+'.
457
458 You can specify values for multiple event settings and .jfc op‐
459 tions by separating them with a whitespace. In case of a con‐
460 flict between a parameter and a .jfc option, the parameter will
461 take precedence. The whitespace delimiter can be omitted for
462 timespan values, i.e. 20ms. For more information about the
463 settings syntax, see Javadoc of the jdk.jfr package.
464
465 JFR.stop [options]
466 Stop a flight recording
467
468 Impact: Low
469
470 Note:
471
472 The options must be specified using either key or key=value syn‐
473 tax. If no parameters are entered, then no recording is
474 stopped.
475
476 options:
477
478 • filename: (Optional) Name of the file to which the recording
479 is written when the recording is stopped. If no path is pro‐
480 vided, the data from the recording is discarded. (STRING, no
481 default value)
482
483 • name: (Optional) Name of the recording (STRING, no default
484 value)
485
486 JVMTI.agent_load [arguments]
487 Loads JVMTI native agent.
488
489 Impact: Low
490
491 Permission: java.lang.management.ManagementPermission(control)
492
493 arguments:
494
495 • library path: Absolute path of the JVMTI agent to load.
496 (STRING, no default value)
497
498 • agent option: (Optional) Option string to pass the agent.
499 (STRING, no default value)
500
501 JVMTI.data_dump
502 Signals the JVM to do a data-dump request for JVMTI.
503
504 Impact: High
505
506 Permission: java.lang.management.ManagementPermission(monitor)
507
508 ManagementAgent.start [options]
509 Starts remote management agent.
510
511 Impact: Low --- no impact
512
513 Note:
514
515 The following options must be specified using either key or
516 key=value syntax.
517
518 options:
519
520 • config.file: (Optional) Sets com.sun.management.config.file
521 (STRING, no default value)
522
523 • jmxremote.host: (Optional) Sets com.sun.management.jmxre‐
524 mote.host (STRING, no default value)
525
526 • jmxremote.port: (Optional) Sets com.sun.management.jmxre‐
527 mote.port (STRING, no default value)
528
529 • jmxremote.rmi.port: (Optional) Sets com.sun.management.jmxre‐
530 mote.rmi.port (STRING, no default value)
531
532 • jmxremote.ssl: (Optional) Sets com.sun.management.jmxre‐
533 mote.ssl (STRING, no default value)
534
535 • jmxremote.registry.ssl: (Optional) Sets com.sun.manage‐
536 ment.jmxremote.registry.ssl (STRING, no default value)
537
538 • jmxremote.authenticate: (Optional) Sets com.sun.manage‐
539 ment.jmxremote.authenticate (STRING, no default value)
540
541 • jmxremote.password.file: (Optional) Sets com.sun.manage‐
542 ment.jmxremote.password.file (STRING, no default value)
543
544 • jmxremote.access.file: (Optional) Sets com.sun.manage‐
545 ment.jmxremote.acce ss.file (STRING, no default value)
546
547 • jmxremote.login.config: (Optional) Sets com.sun.manage‐
548 ment.jmxremote.log in.config (STRING, no default value)
549
550 • jmxremote.ssl.enabled.cipher.suites: (Optional) Sets
551 com.sun.management.
552
553 • jmxremote.ssl.enabled.cipher.suite: (STRING, no default value)
554
555 • jmxremote.ssl.enabled.protocols: (Optional) Sets com.sun.man‐
556 agement.jmxr emote.ssl.enabled.protocols (STRING, no default
557 value)
558
559 • jmxremote.ssl.need.client.auth: (Optional) Sets com.sun.man‐
560 agement.jmxre mote.need.client.auth (STRING, no default value)
561
562 • jmxremote.ssl.config.file: (Optional) Sets com.sun.manage‐
563 ment.jmxremote. ssl_config_file (STRING, no default value)
564
565 • jmxremote.autodiscovery: (Optional) Sets com.sun.manage‐
566 ment.jmxremote.au todiscovery (STRING, no default value)
567
568 • jdp.port: (Optional) Sets com.sun.management.jdp.port (INT, no
569 default value)
570
571 • jdp.address: (Optional) Sets com.sun.management.jdp.address
572 (STRING, no default value)
573
574 • jdp.source_addr: (Optional) Sets com.sun.manage‐
575 ment.jdp.source_addr (STRING, no default value)
576
577 • jdp.ttl: (Optional) Sets com.sun.management.jdp.ttl (INT, no
578 default value)
579
580 • jdp.pause: (Optional) Sets com.sun.management.jdp.pause (INT,
581 no default value)
582
583 • jdp.name: (Optional) Sets com.sun.management.jdp.name (STRING,
584 no default value)
585
586 ManagementAgent.start_local
587 Starts the local management agent.
588
589 Impact: Low --- no impact
590
591 ManagementAgent.status
592 Print the management agent status.
593
594 Impact: Low --- no impact
595
596 Permission: java.lang.management.ManagementPermission(monitor)
597
598 ManagementAgent.stop
599 Stops the remote management agent.
600
601 Impact: Low --- no impact
602
603 Thread.print [options]
604 Prints all threads with stacktraces.
605
606 Impact: Medium --- depends on the number of threads.
607
608 Permission: java.lang.management.ManagementPermission(monitor)
609
610 Note:
611
612 The following options must be specified using either key or
613 key=value syntax.
614
615 options:
616
617 • -l: (Optional) Prints java.util.concurrent locks (BOOLEAN,
618 false)
619
620 VM.cds [arguments]
621 Dumps a static or dynamic shared archive that includes all cur‐
622 rently loaded classes.
623
624 Impact: Medium --- pause time depends on number of loaded class‐
625 es
626
627 Permission: java.lang.management.ManagementPermission(monitor)
628
629 arguments:
630
631 • subcmd: must be either static_dump or
632
633 • filename: (Optional) Name of the shared archive to be dumped
634 (STRING, no default value)
635
636 If filename is not specified, a default file name is chosen us‐
637 ing the pid of the target JVM process. For example, ja‐
638 va_pid1234_static.jsa, java_pid5678_dynamic.jsa, etc.
639
640 If filename is not specified as an absolute path, the archive
641 file is created in a directory relative to the current directory
642 of the target JVM process.
643
644 VM.classloaders [options]
645 Prints classloader hierarchy.
646
647 Impact: Medium --- Depends on number of class loaders and class‐
648 es loaded.
649
650 Permission: java.lang.management.ManagementPermission(monitor)
651
652 The following options must be specified using either key or
653 key=value syntax.
654
655 options:
656
657 • show-classes: (Optional) Print loaded classes. (BOOLEAN,
658 false)
659
660 • verbose: (Optional) Print detailed information. (BOOLEAN,
661 false)
662
663 • fold: (Optional) Show loaders of the same name and class as
664 one. (BOOLEAN, true)
665
666 VM.classloader_stats
667 Prints statistics about all ClassLoaders.
668
669 Impact: Low
670
671 Permission: java.lang.management.ManagementPermission(monitor)
672
673 VM.class_hierarchy [options] [arguments]
674 Prints a list of all loaded classes, indented to show the class
675 hierarchy. The name of each class is followed by the ClassLoad‐
676 erData* of its ClassLoader, or "null" if it is loaded by the
677 bootstrap class loader.
678
679 Impact: Medium --- depends on the number of loaded classes.
680
681 Permission: java.lang.management.ManagementPermission(monitor)
682
683 Note:
684
685 The following options must be specified using either key or
686 key=value syntax.
687
688 options:
689
690 • -i: (Optional) Inherited interfaces should be printed. (BOOL‐
691 EAN, false)
692
693 • -s: (Optional) If a class name is specified, it prints the
694 subclasses. If the class name is not specified, only the su‐
695 perclasses are printed. (BOOLEAN, false)
696
697 arguments:
698
699 • classname: (Optional) The name of the class whose hierarchy
700 should be printed. If not specified, all class hierarchies
701 are printed. (STRING, no default value)
702
703 VM.command_line
704 Prints the command line used to start this VM instance.
705
706 Impact: Low
707
708 Permission: java.lang.management.ManagementPermission(monitor)
709
710 VM.dynlibs
711 Prints the loaded dynamic libraries.
712
713 Impact: Low
714
715 Permission: java.lang.management.ManagementPermission(monitor)
716
717 VM.info
718 Prints information about the JVM environment and status.
719
720 Impact: Low
721
722 Permission: java.lang.management.ManagementPermission(monitor)
723
724 VM.log [options]
725 Lists current log configuration, enables/disables/configures a
726 log output, or rotates all logs.
727
728 Impact: Low
729
730 Permission: java.lang.management.ManagementPermission(control)
731
732 options:
733
734 Note:
735
736 The following options must be specified using either key or
737 key=value syntax.
738
739 • output: (Optional) The name or index (#) of output to config‐
740 ure. (STRING, no default value)
741
742 • output_options: (Optional) Options for the output. (STRING,
743 no default value)
744
745 • what: (Optional) Configures what tags to log. (STRING, no de‐
746 fault value )
747
748 • decorators: (Optional) Configures which decorators to use.
749 Use 'none' or an empty value to remove all. (STRING, no de‐
750 fault value)
751
752 • disable: (Optional) Turns off all logging and clears the log
753 configuration. (BOOLEAN, no default value)
754
755 • list: (Optional) Lists current log configuration. (BOOLEAN,
756 no default value)
757
758 • rotate: (Optional) Rotates all logs. (BOOLEAN, no default
759 value)
760
761 VM.flags [options]
762 Prints the VM flag options and their current values.
763
764 Impact: Low
765
766 Permission: java.lang.management.ManagementPermission(monitor)
767
768 Note:
769
770 The following options must be specified using either key or
771 key=value syntax.
772
773 options:
774
775 • -all: (Optional) Prints all flags supported by the VM (BOOL‐
776 EAN, false).
777
778 VM.native_memory [options]
779 Prints native memory usage
780
781 Impact: Medium
782
783 Permission: java.lang.management.ManagementPermission(monitor)
784
785 Note:
786
787 The following options must be specified using either key or
788 key=value syntax.
789
790 options:
791
792 • summary: (Optional) Requests runtime to report current memory
793 summary, which includes total reserved and committed memory,
794 along with memory usage summary by each subsystem. (BOOLEAN,
795 false)
796
797 • detail: (Optional) Requests runtime to report memory alloca‐
798 tion >= 1K by each callsite. (BOOLEAN, false)
799
800 • baseline: (Optional) Requests runtime to baseline current mem‐
801 ory usage, so it can be compared against in later time.
802 (BOOLEAN, false)
803
804 • summary.diff: (Optional) Requests runtime to report memory
805 summary comparison against previous baseline. (BOOLEAN,
806 false)
807
808 • detail.diff: (Optional) Requests runtime to report memory de‐
809 tail comparison against previous baseline, which shows the
810 memory allocation activities at different callsites. (BOOL‐
811 EAN, false)
812
813 • shutdown: (Optional) Requests runtime to shutdown itself and
814 free the memory used by runtime. (BOOLEAN, false)
815
816 • statistics: (Optional) Prints tracker statistics for tuning
817 purpose. (BOOLEAN, false)
818
819 • scale: (Optional) Memory usage in which scale, KB, MB or GB
820 (STRING, KB)
821
822 VM.print_touched_methods
823 Prints all methods that have ever been touched during the life‐
824 time of this JVM.
825
826 Impact: Medium --- depends on Java content.
827
828 VM.set_flag [arguments]
829 Sets the VM flag option by using the provided value.
830
831 Impact: Low
832
833 Permission: java.lang.management.ManagementPermission(control)
834
835 arguments:
836
837 • flag name: The name of the flag that you want to set (STRING,
838 no default value)
839
840 • string value: (Optional) The value that you want to set
841 (STRING, no default value)
842
843 VM.stringtable [options]
844 Dumps the string table.
845
846 Impact: Medium --- depends on the Java content.
847
848 Permission: java.lang.management.ManagementPermission(monitor)
849
850 Note:
851
852 The following options must be specified using either key or
853 key=value syntax.
854
855 options:
856
857 • -verbose: (Optional) Dumps the content of each string in the
858 table (BOOLEAN, false)
859
860 VM.symboltable [options]
861 Dumps the symbol table.
862
863 Impact: Medium --- depends on the Java content.
864
865 Permission: java.lang.management.ManagementPermission(monitor)
866
867 Note:
868
869 The following options must be specified using either key or
870 key=value syntax).
871
872 options:
873
874 • -verbose: (Optional) Dumps the content of each symbol in the
875 table (BOOLEAN, false)
876
877 VM.systemdictionary
878 Prints the statistics for dictionary hashtable sizes and bucket
879 length.
880
881 Impact: Medium
882
883 Permission: java.lang.management.ManagementPermission(monitor)
884
885 Note:
886
887 The following options must be specified using either key or
888 key=value syntax.
889
890 options:
891
892 • verbose: (Optional) Dump the content of each dictionary entry
893 for all class loaders (BOOLEAN, false) .
894
895 VM.system_properties
896 Prints the system properties.
897
898 Impact: Low
899
900 Permission: java.util.PropertyPermission(*, read)
901
902 VM.uptime [options]
903 Prints the VM uptime.
904
905 Impact: Low
906
907 Note:
908
909 The following options must be specified using either key or
910 key=value syntax.
911
912 options:
913
914 • -date: (Optional) Adds a prefix with the current date (BOOL‐
915 EAN, false)
916
917 VM.version
918 Prints JVM version information.
919
920 Impact: Low
921
922 Permission: java.util.PropertyPermission(java.vm.version, read)
923
924
925
926JDK 17 2021 JCMD(1)