jcmdユーティリティは、実行中のJava仮想マシン(JVM)に診断コマンド要求を送信する場合に使用します。
形式
jcmd [pid | main-class] command...|PerfCounter.print| -f filename
jcmd -l
jcmd -h
注意:
jcmdユーティリティとともに使用するJava Flight Recorder (JFR)は、商用製品であり、使用前に有効にする必要があります。JVMが実行されると、jcmdコマンドのVM.unlock_commercial_featuresを使用して商用機能のロックが解除され、JFRコマンド(「jcmdのコマンド」を参照)を使用できるようになります。
pid使用すると、jcmdユーティリティは、JavaプロセスのプロセスIDに診断コマンド要求を送信します。
main-class使用すると、jcmdユーティリティは、指定されたメイン・クラス名を持つすべてのJavaプロセスに診断コマンド要求を送信します。
command  commandは、選択されたJVMに対して有効なjcmdコマンドである必要があります。jcmdの有効なコマンドのリストを取得するには、helpコマンド(jcmd pid help)を実行します(pidは実行中のJavaプロセスのプロセスIDです)。pidが0の場合、コマンドはすべてのJavaプロセスに送信されます。メイン・クラス引数は、Javaの起動に使用されるクラスとの部分照合または完全照合に使用されます。オプションが指定されていない場合、プロセスの起動に使用されたメイン・クラス引数およびコマンド行引数とともに、実行中のJavaプロセス識別子をリストします(-lの使用と同様)。
Perfcounter.print指定されたJavaプロセスによって公開されるパフォーマンス・カウンタを出力します。
—f filename指定されたファイルfilenameからコマンドを読み取って実行します。
-lプロセスの起動に使用されたメイン・クラス引数およびコマンド行引数とともに、別のDockerプロセスで実行されていないJava仮想マシンのプロセス識別子のリストを表示します。JVMがDockerプロセス内にある場合、psなどのツールを使用してPIDを参照する必要があります。
注意:
引数を指定しないでjcmdを使用することは、jcmd -lを使用することと同じです。
-hjcmdユーティリティのコマンド行ヘルプを表示します。
説明
jcmdユーティリティは、JVMに診断コマンド要求を送信する際に使用されます。JVMが実行されているものと同じマシン上で使用され、JVMの起動で使用されたものと同じ有効なユーザーおよびグループ識別子を持っている必要があります。診断コマンドには、それぞれ独自の引数セットがあります。診断コマンドで使用可能な引数の説明、構文およびリストを表示するには、コマンド名を引数として使用します。次に例を示します
jcmd pid help command
 引数に空白が含まれる場合は、それらを一重引用符または二重引用符('または")で囲む必要があります。さらに、システム・シェルが引用符を処理しないように、一重引用符または二重引用符をバックスラッシュ(\)でエスケープする必要があります。または、これらの引数を一重引用符で囲んでから二重引用符で囲む(または二重引用符で囲んでから一重引用符で囲む)こともできます。
プロセス識別子(pid)またはメイン・クラス(main-class)を1つ目の引数として指定すると、jcmdユーティリティは、指定された識別子を持つJavaプロセスまたは指定されたメイン・クラス名を持つすべてのJavaプロセスに診断コマンド要求を送信します。また、プロセス識別子として0を指定すると、診断コマンド要求を使用可能なすべてのJavaプロセスに送信できます。 
jcmdのコマンド
 commandは、選択されたJVMに対して有効なjcmd診断コマンドである必要があります。jcmdの有効なコマンドのリストを取得するには、helpコマンド(jcmd pid help)を実行します(pidは実行中のJavaプロセスのプロセスIDです)。pidが0の場合、コマンドはすべてのJavaプロセスに送信されます。メイン・クラス引数は、Javaの起動に使用されるクラスとの部分照合または完全照合に使用されます。オプションが指定されていない場合、プロセスの起動に使用されたメイン・クラス引数およびコマンド行引数とともに、別のDockerプロセスにない実行中のJavaプロセス識別子をリストします(-lの使用と同様)。
次のコマンドを使用できます。
help [options][arguments]特定のコマンドの詳細情報を表示します。
arguments:
command name: ヘルプが必要なコマンドの名前(STRING、デフォルト値なし)
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
—all: (オプション)すべてのコマンドについてヘルプを表示します(BOOLEAN、false)。
Compiler.codecacheコード・キャッシュ・レイアウトおよび境界を出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor)  
Compiler.codelist コード・キャッシュ内の有効なすべてのコンパイル済メソッドを出力します。
影響: 中
権限: java.lang.management.ManagementPermission(monitor) 
Compiler.queueコンパイルの待ち行列に入れられたメソッドを出力します。
影響: 低
 権限: java.lang.management.ManagementPermission(monitor) 
Compiler.directives_add <filename> argumentsファイルからコンパイラ・ディレクティブを追加します。
影響: 低
 権限: java.lang.management.ManagementPermission(monitor)  
arguments: 
filename: ディレクティブ・ファイルの名前(STRING、デフォルト値なし)
Compiler.directives_clearすべてのコンパイラ・ディレクティブを削除します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
Compiler.directives_print すべてのアクティブなコンパイラ・ディレクティブを出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
Compiler.directives_remove直近に追加されたコンパイラ・ディレクティブを削除します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
GC.class_histogram [options]Javaヒープの使用状況に関する統計情報を示します。
影響: 高 — Javaヒープ・サイズとJavaコンテンツによって異なります。
権限: java.lang.management.ManagementPermission(monitor)
注意:
keyまたはkey=value構文を使用して、optionsを指定する必要があります。
options: 
—all: (オプション) 到達不能なオブジェクトを含め、すべてのオブジェクトを検査します(BOOLEAN、false)
GC.class_stats [options] [arguments]Javaクラス・メタ・データに関する統計情報を示します。
影響: 高 — Javaヒープ・サイズとJavaコンテンツによって異なります。
注意:
keyまたはkey=value構文を使用して、optionsを指定する必要があります。
options: 
—all: (オプション) すべての列を表示します(BOOLEAN、false)         
-csv: (オプション) スプレッドシートについてCSV (カンマ区切り値)形式で出力します(BOOLEAN、false)        
—help: (オプション) すべての列の意味を表示します(BOOLEAN、false)
arguments
InstBytes
KlassBytes
CpAll
annotations
MethodCount
Bytecodes
MethodAll
ROAll
RWAll
Total
GC.finalizer_infoJavaファイナライズ・キューに関する情報を示します。
影響: 中
 権限: java.lang.management.ManagementPermission(monitor) 
GC.heap_dump [options] [arguments]JavaヒープのHPROF形式のダンプを生成します。
 影響: 高 — Javaヒープ・サイズとJavaコンテンツによって異なります。-allオプションを指定されていないかぎり、フルGCを要求します。
権限: java.lang.management.ManagementPermission(monitor)  
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
—all: [オプション] 到達不能なオブジェクトを含め、すべてのオブジェクトをダンプします(BOOLEAN、false)
arguments:
filename: ダンプ・ファイルの名前(STRING、デフォルト値なし)
GC.heap_infoJavaヒープの一般情報を示します。
影響: 中
権限: java.lang.management.ManagementPermission(monitor) 
GC.runjava.lang.System.gc()を呼び出します。
影響: 中 — Javaヒープ・サイズとJavaコンテンツによって異なります。
GC.run_finalizationjava.lang.System.runFinalization()を呼び出します。 
影響: 中 — Javaコンテンツによって異なります。
JFR.check [options]Java Flight Recorderコマンド・リファレンスのJFR.checkを参照してください。
JFR.configure [options]Java Flight Recorderコマンド・リファレンスのJFR.configureを参照してください。
JFR.dump [options]Java Flight Recorderコマンド・リファレンスのJFR.dumpを参照してください。
JFR.start [options]Java Flight Recorderコマンド・リファレンスのJFR.startを参照してください。
JFR.stop [options]Java Flight Recorderコマンド・リファレンスのJFR.stopを参照してください。
JVMTI.agent_load [arguments] JVMTIネイティブ・エージェントをロードします。
影響: 低
権限: java.lang.management.ManagementPermission(control) 
arguments:
library path: ロードするJVMTIエージェントの絶対パス。(STRING、デフォルト値なし)
agent option: (オプション) エージェントに渡すオプションの文字列。(STRING、デフォルト値なし)
JVMTI.data_dumpJVMTIに対してデータ・ダンプ要求を実行するためにJVMに信号を送信します。
影響: 高
権限: java.lang.management.ManagementPermission(monitor) 
ManagementAgent.start [options]リモート管理エージェントを起動します。
影響: 低 — 影響なし
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
config.file: (オプション) com.sun.management.config.fileを設定します(STRING、デフォルト値なし)
jmxremote.host: (オプション) com.sun.management.jmxremote.hostを設定します(STRING、デフォルト値なし)
jmxremote.port: (オプション) com.sun.management.jmxremote.portを設定します(STRING、デフォルト値なし)
jmxremote.rmi.port: (オプション) com.sun.management.jmxremote.rmi.portを設定します(STRING、デフォルト値なし)
jmxremote.ssl: (オプション) com.sun.management.jmxremote.sslを設定します(STRING、デフォルト値なし)
jmxremote.registry.ssl : (オプション) com.sun.management.jmxremote.registry.ssl設定します(STRING、デフォルト値なし)
jmxremote.authenticate: (オプション) com.sun.management.jmxremote.authenticateを設定します(STRING、デフォルト値なし) 
 jmxremote.password.file: (オプション) com.sun.management.jmxremote.password.fileを設定します(STRING、デフォルト値なし) 
jmxremote.access.file: (オプション) com.sun.management.jmxremote.acce ss.fileを設定します(STRING、デフォルト値なし)        
jmxremote.login.config: (オプション) com.sun.management.jmxremote.log in.configを設定します(STRING、デフォルト値なし) 
jmxremote.ssl.enabled.cipher.suites: (オプション) com.sun.managementを設定します。 
jmxremote.ssl.enabled.cipher.suite: (STRING、デフォルト値なし)
jmxremote.ssl.enabled.protocols: (オプション) com.sun.management.jmxr emote.ssl.enabled.protocolsを設定します(STRING、デフォルト値なし) 
jmxremote.ssl.need.client.auth: (オプション) com.sun.management.jmxre mote.need.client.authを設定します(STRING、デフォルト値なし) 
jmxremote.ssl.config.file: (オプション) com.sun.management.jmxremote. ssl_config_fileを設定します(STRING、デフォルト値なし)
jmxremote.autodiscovery: (オプション) com.sun.management.jmxremote.au todiscoveryを設定します(STRING、デフォルト値なし) 
jdp.port: (オプション) com.sun.management.jdp.portを設定します(INT、デフォルト値なし) 
 jdp.address: (オプション) com.sun.management.jdp.address設定します(STRING、デフォルト値なし) 
jdp.source_addr: (オプション) com.sun.management.jdp.source_addr設定します(STR ING、デフォルト値なし)
jdp.ttl: (オプション) com.sun.management.jdp.ttlを設定します(INT、デフォルト値なし) 
 jdp.pause: (オプション) com.sun.management.jdp.pauseを設定します(INT、デフォルト値なし) 
jdp.name: (オプション) com.sun.management.jdp.nameを設定します(STRING、デフォルト値なし)
ManagementAgent.start_localローカル管理エージェントを起動します。
影響: 低 — 影響なし
ManagementAgent.status管理エージェントのステータスを出力します。
影響: 低 — 影響なし
権限: java.lang.management.ManagementPermission(monitor)  
ManagementAgent.stopリモート管理エージェントを停止します。
影響: 低 — 影響なし
Thread.print [options]スタック・トレースのあるすべてのスレッドを出力します。
影響: 中 — スレッド数によって異なります。
権限: java.lang.management.ManagementPermission(monitor) 
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
-l: (オプション) java.util.concurrentのロックを出力します(BOOLEAN、false)
VM.check_commercial_features商用機能のステータスを表示します
影響: 低 — 影響なし
VM.unlock_commercial_features商用機能をロック解除します
影響: 低 — 影響なし
権限: java.lang.management.ManagementPermission(control)  
VM.classloader_statsすべてのクラスローダーに関する統計情報を出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
VM.class_hierarchy [options] [arguments]ロードされたすべてのクラスのリストを、クラス階層を示すようにインデントして出力します。各クラスの名前の後にそのクラスローダーのClassLoaderData*か、ブートストラップ・クラス・ローダーでロードされている場合は"null"が表示されます。
影響: 中 — ロードされたクラスの数によって異なります。
権限: java.lang.management.ManagementPermission(monitor)
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
-i: (オプション) 継承されたインタフェースを出力するかどうか。(BOOLEAN、false)
-s: (オプション) クラス名が指定されている場合は、サブクラスを出力します。クラス名が指定されていない場合は、スーパークラスのみを出力します。(BOOLEAN、false)
arguments
classname: (オプション) 階層を出力するクラスの名前。指定されていない場合、すべてのクラス階層を出力します。(STRING、デフォルト値なし)
VM.command_line このVMインスタンスの起動に使用されるコマンド行を出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor)  
VM.dynlibsロードされた動的ライブラリを出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
VM.infoJVM環境およびステータスに関する情報を出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
VM.log [options]現在のログ構成のリスト、ログ出力の有効化、無効化または構成、すべてのログのローテーションを行います。
影響: 低
権限: java.lang.management.ManagementPermission(control)
options: 
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
output: (オプション) 構成する出力の名前または索引(#)。(STRING、デフォルト値なし)
output_options: (オプション) 出力のオプション。(STRING、デフォルト値なし) 
what: (オプション) 記録するタグを構成します。(STRING、デフォルト値なし)
decorators: (オプション) 使用するデコレータを構成します。すべて削除する場合は、'none'または空の値を使用します。(STRING、デフォルト値なし)
disable: (オプション) すべてのロギングをオフにし、ログ構成をクリアします。(BOOLEAN、デフォルト値なし)
list: (オプション) 現在のログ構成をリストします。(BOOLEAN、デフォルト値なし) 
rotate: (オプション) すべてのログをローテーションします。(BOOLEAN、デフォルト値なし)
VM.flags [options]VMフラグ・オプションとその現行値を出力します。
影響: 低
権限: java.lang.management.ManagementPermission(monitor)
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
-all: (オプション) VMでサポートされているすべてのフラグを出力します(BOOLEAN、false)。
VM.native_memory [options]ネイティブ・メモリー使用状況を出力します
影響: 中
権限: java.lang.management.ManagementPermission(monitor) 
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
summary: (オプション) 現在のメモリーのサマリーをレポートするようにランタイムに要求します。サマリーには予約済およびコミット済メモリーの合計とともに、各サブシステム別のメモリー使用量のサマリーが含まれます。(BOOLEAN、false) 
detail: (オプション) 各コールサイト別に1K以上のメモリー割当てをレポートするようにランタイムに要求します。(BOOLEAN、false) 
baseline: (オプション) 現在のメモリー使用状況のベースラインをランタイムに要求します。これにより、後で比較できます。(BOOLEAN、false) 
summary.diff: (オプション) 前回ベースラインとのメモリーのサマリー比較をレポートするようにランタイムに要求します。(BOOLEAN、false) 
detail.diff: (オプション) 前回ベースラインとのメモリーの詳細比較をレポートするようにランタイムに要求します。これには、それぞれのコールサイトでのメモリー割当てアクティビティが表示されます。(BOOLEAN、false)
shutdown: (オプション) ランタイム自体を停止し、ランタイムで使用したメモリーを解放するようにランタイムに要求します。(BOOLEAN、false) 
statistics: (オプション) チューニング目的用にトラッカの統計情報を出力します。(BOOLEAN、false) 
scale: (オプション) KB、MBまたはGB単位のメモリー使用量(STRING、KB)
VM.print_touched_methodsこのJVMの存続期間中にアクセスされたすべてのメソッドを出力します。
影響: 中 — Javaコンテンツによって異なります。
VM.set_flag [arguments]指定された値を使用してVMフラグ・オプションを設定します。
影響: 低
権限: java.lang.management.ManagementPermission(control) 
arguments:
flag name: 設定するフラグの名前(STRING、デフォルト値なし)
string value: (オプション) 設定する値(STRING、デフォルト値なし)
VM.stringtable [options]文字列表をダンプします。
影響: 中 — Javaコンテンツによって異なります。
権限: java.lang.management.ManagementPermission(monitor)  
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
-verbose: (オプション) 表内の各文字列の内容をダンプします(BOOLEAN、false)
VM.symboltable [options]シンボル表をダンプします。
影響: 中 — Javaコンテンツによって異なります。
権限: java.lang.management.ManagementPermission(monitor) 
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
-verbose: (オプション) 表内の各シンボルの内容をダンプします(BOOLEAN、false)
VM.systemdictionaryディクショナリ・ハッシュ表サイズおよびバケット長の統計情報を出力します。
影響: 中
権限: java.lang.management.ManagementPermission(monitor)  
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
verbose: (オプション) すべてのクラス・ローダーについて各ディクショナリ・エントリの内容をダンプします(BOOLEAN、false)。
VM.system_propertiesシステム・プロパティを出力します。
影響: 低
権限: java.util.PropertyPermission(*, read)  
VM.uptime [options]VMの稼働時間を出力します。
影響: 低
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
-date: (オプション) 現在日付を先頭に追加します(BOOLEAN、false)
VM.versionJVMバージョン情報を出力します。
影響: 低
権限: java.util.PropertyPermission(java.vm.version, read)