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のコマンド」を参照)を使用できるようになります。
pidjcmdユーティリティは、JavaプロセスのプロセスIDに診断コマンド要求を送信します。main-classjcmdユーティリティは、指定されたメイン・クラス名を持つすべての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プロセスの起動に使用されたメイン・クラス引数およびコマンド行引数とともに、実行中のJava仮想マシンのプロセス識別子のリストを表示します。
-hjcmdユーティリティのコマンド行ヘルプを表示します。
説明
jcmdユーティリティは、JVMに診断コマンド要求を送信する際に使用されます。JVMが実行されているものと同じマシン上で使用され、JVMの起動で使用されたものと同じ有効なユーザーおよびグループ識別子を持っている必要があります。診断コマンドには、それぞれ独自の引数セットがあります。診断コマンドで使用可能な引数の説明、構文およびリストを表示するには、コマンド名を引数として使用します。次に例を示します
jcmd pid help command
 引数に空白が含まれる場合は、それらを一重引用符または二重引用符('または")で囲む必要があります。さらに、システム・シェルが引用符を処理しないように、一重引用符または二重引用符をバックスラッシュ(\)でエスケープする必要があります。または、これらの引数を一重引用符で囲んでから二重引用符で囲む(または二重引用符で囲んでから一重引用符で囲む)こともできます。
プロセス識別子(pid)またはメイン・クラス(main-class)を1つ目の引数として指定すると、jcmdユーティリティは、指定された識別子を持つJavaプロセスまたは指定されたメイン・クラス名を持つすべてのJavaプロセスに診断コマンド要求を送信します。また、プロセス識別子として0を指定すると、診断コマンド要求を使用可能なすべてのJavaプロセスに送信できます。 
引数を付けずに、または-lオプションを指定してjcmdを実行すると、プロセスの起動時に使用されたメイン・クラスおよびコマンド行引数とともに、実行中のJavaプロセス識別子のリストが出力されます。-hまたは-helpオプションを付けてjcmdを実行すると、ツールのヘルプ・メッセージが出力されます。
診断コマンド要求として次のいずれかを使用します。
Perfcounter.print
-f filename
command [arguments]
jcmdのコマンド
 commandは、選択されたJVMに対して有効なjcmd診断コマンドである必要があります。jcmdの有効なコマンドのリストを取得するには、helpコマンド(jcmd pid help)を実行します(pidは実行中のJavaプロセスのプロセスIDです)。pidが0の場合、コマンドはすべてのJavaプロセスに送信されます。メイン・クラス引数は、Javaの起動に使用されるクラスとの部分照合または完全照合に使用されます。オプションが指定されていない場合、プロセスの起動に使用されたメイン・クラス引数およびコマンド行引数とともに、実行中の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]実行中のJFRの記録をチェックします。
影響: 低
権限: java.lang.management.ManagementPermission(monitor)
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
name: (オプション) \"My Recording\"などの記録テキスト、またはすべての記録の表示を省略します(STRING、デフォルト値なし)
verbose: (オプション) 記録のイベント設定を出力します(BOOLEAN、false)
JFR.configure [options]Java Flight Recorder (JFR)を構成します
影響: 低
権限: java.lang.management.ManagementPermission(monitor) 
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
repositorypath: (オプション) 次のように、リポジトリのパスを設定します
 \My Repository\ (STRING、デフォルト値なし)
dumppath: (オプション) 次のように、ダンプするパスを設定します
\"My Dump path\" (STRING、デフォルト値なし)
stackdepth: (オプション) スタックの深さを設定します(JLONG、64) 
globalbuffercount: (オプション) グローバル・バッファの数を設定します(JLONG、32) 
globalbuffersize: (オプション) グローバル・バッファのサイズを設定します(JLONG、524288) 
thread_buffer_size: (オプション) スレッド・バッファのサイズを設定します(JLONG、8192) 
memorysize: (オプション) 全体のメモリー・サイズを設定します(JLONG、16777216)
threadbufferstodisk: (オプション) ディスクに直接書き込まれるスレッド・バッファを設定します(BOOLEAN、false) 
maxchunksize: (オプション) 個々のディスク・チャンクのサイズを設定します(JLONG、12582 912)
samplethreads: (オプション) スレッド・サンプリングをアクティブにします(BOOLEAN、true)
JFR.dump [options]JFR記録の内容をファイルにコピーします。名前または記録IDのいずれかを指定する必要があります。
影響: 低
 権限: java.lang.management.ManagementPermission(monitor) 
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
name: (オプション) \"My Recording\"などの記録名(STRING、デフォルト値なし) 
filename: 記録データをファイル(\"C:\Users\user\My Recording.jfr\")にコピーします(STRING、デフォルト値なし)
path-to-gc-roots: (オプション) GCルートのパスを収集します(BOOLEAN、false) 
JFR.start [options]新しいJFR記録を開始します。
影響: 中: 記録の設定に応じて、影響は低から高までの範囲にわたります。
権限: java.lang.management.ManagementPermission(monitor)
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
name: (オプション) \"My Recording\"など、記録の特定に使用可能な名前(STRING、デフォルト値なし) 
settings: (オプション) 設定ファイル(プロファイルなど)またはデフォルト。JRE _HOME/lib/jfrを参照してください(STRING SET、デフォルト値なし) 
delay: (オプション) 記録開始の秒(s)、分(m)、時間(h)または日(d)単位の遅延時間(5hなど)。(NANOTIME、0)  
duration: (オプション) 秒(s)、分(m)、時間(h)または日(d)単位の記録期間(300sなど)。(NANOTIME、0)
disk: (オプション) 記録をディスクに残すかどうか(BOOLEAN、デフォルト値なし) 
filename: (オプション) \"C:\Users\user \My Recording.jfr\"などの結果の記録ファイル名(STRING、デフォルト値なし) 
maxage: (オプション) 記録されたデータを(ディスク上に)保存する秒(s)、分(m)、時間(h)または日(d)単位の最大時間(60mなど)または制限なしの場合は0 (NANOTIME、0)
maxsize: (オプション) (ディスク上に)保存する、KB (k)、MB (M)またはGB (G)単位の最大バイト数(500Mなど)または制限なしの場合は0 (MEMORY SIZE、0)
dumponexit: (オプション) JVMの停止時に実行中の記録をダンプします(BOOL EAN、デフォルト値なし)
path-to-gc-roots: (オプション) GCルートのパスを収集します(BOOLEAN、false) 
JFR.stop [options]JFR記録を停止します
影響: 低
権限: java.lang.management.ManagementPermission(monitor)  
注意:
keyまたはkey=value構文を使用して、次のoptionsを指定する必要があります。
options: 
 name: (オプション) 次のような記録テキスト
\"My Recording\" (STRING、デフォルト値なし)
 filename: (オプション) 次のようなファイルに記録データをコピーします
\"C:\Users\user\ My Recording.jfr\" (STRING、デフォルト値なし)
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)