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
プロセスの起動に使用されたメイン・クラス引数およびコマンド行引数とともに、実行中のJava仮想マシンのプロセス識別子のリストを表示します。
-h
jcmd
ユーティリティのコマンド行ヘルプを表示します。
説明
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_info
Javaファイナライズ・キューに関する情報を示します。
影響: 中
権限: 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_info
Javaヒープの一般情報を示します。
影響: 中
権限: java.lang.management.ManagementPermission(monitor)
GC.run
java.lang.System.gc()
を呼び出します。
影響: 中 — Javaヒープ・サイズとJavaコンテンツによって異なります。
GC.run_finalization
java.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_dump
JVMTIに対してデータ・ダンプ要求を実行するために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.info
JVM環境およびステータスに関する情報を出力します。
影響: 低
権限: 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.version
JVMバージョン情報を出力します。
影響: 低
権限: java.util.PropertyPermission(java.vm.version, read)