JCMD(1) JDK Commands JCMD(1)

jcmd - ارسال درخواست‌های دستورات عیب‌یابی به یک ماشین مجازی جاوا (JVM) در حال اجرا

jcmd [pid | main-class] command... | PerfCounter.print | -f filename

jcmd [-l]

jcmd -h

در صورت استفاده، ابزار jcmd درخواست دستور عیب‌یابی را به شناسه فرایند (PID) مشخص‌شده برای فرایند جاوا ارسال می‌کند.
در صورت استفاده، ابزار jcmd درخواست دستور عیب‌یابی را به تمام فرایندهای جاوایی که نام کلاس اصلی (main class) آن‌ها مشخص شده است، ارسال می‌کند.
مقدار command باید یک دستور معتبر jcmd برای JVM انتخاب‌شده باشد. فهرست دستورات در دسترس برای jcmd با اجرای دستور help (jcmd pid help) به دست می‌آید که در آن pid شناسه فرایند مربوط به فرایند جاوای در حال اجرا است. اگر pid برابر با 0 باشد، دستورات به تمام فرایندهای جاوا ارسال خواهند شد. آرگومان کلاس اصلی برای مطابقت، به‌صورت جزئی یا کامل، با کلاسی که برای راه‌اندازی جاوا استفاده شده به کار می‌رود. اگر هیچ گزینه‌ای مشخص نشود، شناسه‌های فرایندهای جاوای در حال اجرا را به همراه کلاس اصلی و آرگومان‌های خط فرمانی که برای راه‌اندازی فرایند استفاده شده‌اند فهرست می‌کند (مشابه استفاده از -l).
شمارنده‌های کارایی (performance counters) ارائه‌شده توسط فرایند جاوای مشخص‌شده را چاپ می‌کند.
دستورات را از یک فایل مشخص، filename، خوانده و اجرا می‌کند.
فهرست شناسه‌های فرایند ماشین مجازی جاوا را که در یک فرایند داکر جداگانه اجرا نمی‌شوند، به همراه کلاس اصلی و آرگومان‌های خط فرمانی که برای راه‌اندازی فرایند استفاده شده‌اند، نمایش می‌دهد. اگر JVM در یک فرایند داکر قرار داشته باشد، باید از ابزارهایی مانند ps برای یافتن PID استفاده کنید.

نکته:

استفاده از jcmd بدون هیچ آرگومانی مشابه استفاده از jcmd -l است.

راهنمای خط فرمان ابزار jcmd را نمایش می‌دهد.

ابزار jcmd برای ارسال درخواست‌های دستور تشخیصی (diagnostic command) به JVM استفاده می‌شود. این ابزار باید روی همان ماشینی که JVM در حال اجرا است اجرا شود و شناسه‌های کاربری و گروهی مؤثر (effective user and group identifiers) یکسانی با شناسه‌های به کار رفته برای راه‌اندازی JVM داشته باشد. هر دستور تشخیصی مجموعه‌ای از آرگومان‌های ویژه خود را دارد. برای نمایش توضیحات، نحو و فهرستی از آرگومان‌های دردسترس برای یک دستور تشخیصی، نام دستور را به عنوان آرگومان وارد کنید. برای نمونه:

jcmd pid help command

اگر آرگومان‌ها شامل فاصله باشند، باید آن‌ها را داخل علامت‌های نقل‌قول تکی یا دوتایی (' یا ") قرار دهید. علاوه بر این، باید علامت‌های نقل‌قول تکی یا دوتایی را با یک بک‌اسلش (\) گریز دهید تا از پردازش علامت‌های نقل‌قول توسط شل سیستم‌عامل جلوگیری شود. همچنین، می‌توانید این آرگومان‌ها را درون علامت‌های نقل‌قول تکی و سپس داخل علامت‌های نقل‌قول دوتایی قرار دهید (یا برعکس، داخل دوتایی و سپس تکی).

اگر شناسه فرآیند (pid) یا کلاس اصلی (main-class) را به عنوان آرگومان نخست تعیین کنید، ابزار jcmd درخواست دستور تشخیصی را به فرآیند Java با شناسه مشخص‌شده یا به تمامی فرآیندهای Java با نام کلاس اصلی مشخص‌شده ارسال می‌کند. همچنین می‌توانید با تعیین 0 به عنوان شناسه فرآیند، درخواست دستور تشخیصی را به تمامی فرآیندهای Java دردسترس ارسال نمایید.

مقدار command باید یک دستور تشخیصی معتبر jcmd برای JVM انتخاب‌شده باشد. فهرست دستورهای دردسترس برای jcmd با اجرای دستور help (jcmd pid help) به دست می‌آید که در آن pid شناسه فرآیند برای یک فرآیند Java در حال اجرا است. اگر pid برابر با 0 باشد، دستورها به همه فرآیندهای Java ارسال خواهند شد. آرگومان کلاس اصلی برای تطبیق جزئی یا کامل با کلاسی که برای راه‌اندازی Java به کار رفته است استفاده خواهد شد. اگر هیچ گزینه‌ای داده نشود، شناسه‌های فرآیندهای Java در حال اجرایی را که در فرآیندهای docker مجزا نیستند به همراه کلاس اصلی و آرگومان‌های خط فرمانی که برای راه‌اندازی فرآیند استفاده شده‌اند، فهرست می‌کند (مشابه استفاده از -l).

دستورهای زیر در دسترس هستند:

برای اطلاعات بیشتر درباره یک دستور خاص.

آرگومان‌ها:

•
command name: نام دستوری که برای آن راهنمایی می‌خواهیم (STRING، بدون مقدار پیش‌فرض)

نکته:

گزینه‌های زیر باید با نحو key یا key=value مشخص شوند.

گزینه‌ها:

•
-all: (اختیاری) نمایش راهنما برای تمام دستورها (BOOLEAN، false).
چیدمان و مرزهای code cache را چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

تمام متدهای کامپایل‌شده در code cache که فعال (alive) هستند را چاپ می‌کند.

تأثیر: متوسط

مجوز: java.lang.management.ManagementPermission(monitor)

متدهای در صف کامپایل را چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

دستورالعمل‌های کامپایلر را از یک فایل اضافه می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

آرگومان‌ها:

filename: نام فایل دستورالعمل‌ها (STRING، بدون مقدار پیش‌فرض)

تمام دستورالعمل‌های کامپایلر را حذف می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

تمام دستورالعمل‌های فعال کامپایلر را چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

آخرین دستورالعمل اضافه‌شده کامپایلر را حذف می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

آماری درباره میزان مصرف heap در Java ارائه می‌دهد.

تأثیر: بالا --- وابسته به اندازه و محتوای heap جاوا است.

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌ها باید با نحو key یا key=value مشخص شوند.

گزینه‌ها:

•
-all: (اختیاری) بررسی تمام اشیاء، از جمله اشیاء غیرقابل‌دسترس (unreachable) (BOOLEAN، false)
اطلاعاتی درباره صف پایانی‌سازی (finalization queue) در Java ارائه می‌دهد.

تأثیر: متوسط

مجوز: java.lang.management.ManagementPermission(monitor)

یک رونوشت حافظه (dump) در قالب HPROF از heap در Java تولید می‌کند.

تأثیر: بالا --- وابسته به اندازه و محتوای heap جاوا است. یک GC کامل درخواست می‌شود، مگر اینکه گزینه -all مشخص شده باشد.

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با نحو key یا key=value مشخص شوند.

گزینه‌ها:.IP • 2 -all: (اختیاری) تخلیهٔ تمام شیءها، شامل شیءهای غیرقابل‌دسترس (BOOLEAN، false)

آرگومان‌ها:

•
filename: نام فایل تخلیه (STRING، بدون مقدار پیش‌فرض)
اطلاعات عمومی هیپ (heap) جاوا را ارائه می‌دهد.

میزان تأثیر: متوسط

مجوز: java.lang.management.ManagementPermission(monitor)

متد java.lang.System.gc() را فراخوانی می‌کند.

میزان تأثیر: متوسط --- به اندازه و محتوای هیپ جاوا بستگی دارد.

متد java.lang.System.runFinalization() را فراخوانی می‌کند.

میزان تأثیر: متوسط --- به محتوای جاوا بستگی دارد.

نمایش اطلاعات دربارهٔ یک flight recording در حال اجرا

میزان تأثیر: کم

نکته:

گزینه‌ها (options) باید با ساختار key یا key=value مشخص شوند. اگر هیچ پارامتری وارد نشود، اطلاعات مربوط به تمام ضبط‌های فعال نمایش داده می‌شود.

گزینه‌ها:

•
name: (اختیاری) نام flight recording. (STRING، بدون مقدار پیش‌فرض)
•
verbose: (اختیاری) پرچم برای چاپ تنظیمات رویدادها برای عملیات ضبط (BOOLEAN، false)
تنظیم پارامترها برای یک flight recording

میزان تأثیر: کم

نکته:

گزینه‌ها (options) باید با ساختار key یا key=value مشخص شوند. اگر هیچ پارامتری وارد نشود، تنظیمات فعلی نمایش داده می‌شوند.

گزینه‌ها:

•
globalbuffercount: (اختیاری) تعداد بافرهای سراسری (global buffers). این گزینه یک گزینهٔ قدیمی و منسوخ است: پارامتر memorysize را برای تغییر تعداد بافرهای سراسری تغییر دهید. این مقدار پس از مقداردهی اولیهٔ JFR قابل تغییر نیست. (STRING، مقدار پیش‌فرض توسط مقدار تعیین‌شده برای memorysize مشخص می‌شود)
•
globalbuffersize: (اختیاری) اندازهٔ بافرهای سراسری به بایت. این گزینه یک گزینهٔ قدیمی و منسوخ است: پارامتر memorysize را برای تغییر اندازهٔ بافرهای سراسری تغییر دهید. این مقدار پس از مقداردهی اولیهٔ JFR قابل تغییر نیست. (STRING، مقدار پیش‌فرض توسط مقدار تعیین‌شده برای memorysize مشخص می‌شود)
•
maxchunksize: (اختیاری) حداکثر اندازهٔ هر تکه‌داده (data chunk) مستقل به بایت، در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت، یا 'g' یا 'G' برای گیگابایت. این مقدار پس از مقداردهی اولیهٔ JFR قابل تغییر نیست. (STRING، 12M)
•
memorysize: (اختیاری) اندازهٔ کل حافظه به بایت، در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت، یا 'g' یا 'G' برای گیگابایت. این مقدار پس از مقداردهی اولیهٔ JFR قابل تغییر نیست. (STRING، 10M)
•
repositorypath: (اختیاری) مسیر مکانی که فایل‌های ضبط تا پیش از نوشته‌شدن در یک فایل دائمی در آن ذخیره می‌شوند. (STRING، مکان پیش‌فرض، دایرکتوری موقت سیستم‌عامل است. در سیستم‌عامل‌های لینوکس، دایرکتوری موقت /tmp است. در ویندوز، دایرکتوری موقت توسط متغیر محیطی TMP مشخص می‌شود.)
•
stackdepth: (اختیاری) عمق پشته برای ردگیری پشته (stack traces). تنظیم این مقدار به عددی بزرگ‌تر از پیش‌فرض 64 ممکن است باعث افت کارایی شود. این مقدار پس از مقداردهی اولیهٔ JFR قابل تغییر نیست. (LONG، 64)
•
thread_buffer_size: (اختیاری) اندازهٔ بافر محلی برای هر رشته (thread) به بایت، در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'k' یا 'K' برای کیلوبایت، یا 'm' یا 'M' برای مگابایت. بازنویسی این پارامتر می‌تواند کارایی را کاهش دهد و توصیه نمی‌شود. این مقدار پس از مقداردهی اولیهٔ JFR قابل تغییر نیست. (STRING، 8k)
•
samplethreads: (اختیاری) پرچم برای فعال‌سازی نمونه‌برداری از رشته‌ها. (BOOLEAN، true)
نوشتن داده‌ها در یک فایل در حین اجرای flight recording

میزان تأثیر: کم

نکته:

گزینه‌ها (options) باید با ساختار key یا key=value مشخص شوند. هیچ گزینه‌ای اجباری نیست. عملیات ضبط پس از نوشته‌شدن داده‌ها همچنان ادامه می‌یابد.

گزینه‌ها:

•
begin: (اختیاری) مشخص‌کردن زمانی که از آن به بعد، داده‌های ضبط‌شده در فایل تخلیه گنجانده می‌شوند. قالب زمان به صورت زمان محلی مشخص می‌شود. (STRING، بدون مقدار پیش‌فرض)
•
end: (اختیاری) مشخص‌کردن زمانی که تا آن، داده‌های ضبط‌شده در فایل تخلیه گنجانده می‌شوند. قالب زمان به صورت زمان محلی مشخص می‌شود. (STRING، بدون مقدار پیش‌فرض)

نکته: برای هر دو پارامتر begin و end، زمان باید در قالبی باشد که توسط java.time.LocalTime::parse(STRING)، java.time.LocalDateTime::parse(STRING) یا java.time.Instant::parse(STRING) قابل خواندن باشد. برای مثال: "13:20:15"، "2020-03-17T09:00:00" یا "2020-03-17T09:00:00Z".

نکته: زمان‌های begin و end منطبق با برچسب‌های زمانی (timestamps) موجود در اطلاعات ثبت‌شده در داده‌های flight recording هستند.

گزینهٔ دیگر، استفاده از زمانی نسبت به زمان فعلی است که با یک عدد صحیح منفی به همراه "s"، "m" یا "h" مشخص می‌شود. برای مثال: "-12h"، "-15m" یا "-30s".

•
filename: (اختیاری) نام فایلی که داده‌های flight recording در آن تخلیه می‌شوند. اگر نام فایلی مشخص نشود، نام فایل از PID و تاریخ فعلی تولید می‌شود. همچنین نام فایل می‌تواند یک دایرکتوری باشد، که در این حالت، نام فایل بر اساس PID و تاریخ فعلی در دایرکتوری مشخص‌شده ایجاد می‌شود. (STRING، بدون مقدار پیش‌فرض)
•
maxage: (اختیاری) مدت زمانی که داده‌های flight recording در یک فایل تخلیه می‌شوند. (INTEGER به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، بدون مقدار پیش‌فرض)
•
maxsize: (اختیاری) حداکثر اندازه برای مقدار داده‌ای که از یک flight recording تخلیه می‌شود به بایت، در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت، یا 'g' یا 'G' برای گیگابایت. (STRING، بدون مقدار پیش‌فرض).IP • 2 name: (اختیاری) نام ضبط. اگر نامی ارائه نشود، داده‌های تمام ضبط‌ها تخلیه (dump) می‌شوند. (STRING، بدون مقدار پیش‌فرض)
•
path-to-gc-root: (اختیاری) پرچمی برای ذخیره مسیر به ریشه‌های بازیافت حافظه (GC) در زمان تخلیه داده‌های ضبط. اطلاعات مسیر برای یافتن نشت‌های حافظه (memory leaks) مفید است، اما جمع‌آوری آن می‌تواند باعث توقف کوتاه برنامه شود. این پرچم را تنها زمانی فعال کنید که مشکوک به وجود نشت حافظه در برنامه هستید. (BOOLEAN،‏ false)
شروع یک ضبط پرواز (flight recording)

میزان اثر: کم

نکته:

گزینه‌ها (options) باید با استفاده از نحو key یا key=value مشخص شوند. اگر هیچ پارامتری وارد نشود، ضبط با مقادیر پیش‌فرض آغاز می‌شود.

گزینه‌ها (options):

•
delay: (اختیاری) مدت زمانی که پیش از آغاز ضبط باید منتظر ماند (یک عدد صحیح INTEGER به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، 0s)
•
disk: (اختیاری) پرچمی برای نوشتن هم‌زمان داده‌ها روی دیسک هنگام ضبط (BOOLEAN،‏ true)
•
dumponexit: (اختیاری) پرچمی برای نوشتن داده‌های ضبط روی دیسک هنگام خاموش شدن ماشین مجازی جاوا (JVM). اگر روی 'true' تنظیم شود و مقداری برای filename مشخص نشده باشد، ضبط در فایلی درون دایرکتوری محل اجرای فرایند نوشته می‌شود. نام این فایل توسط سیستم تولید شده و شامل شناسه فرایند (PID)، شناسه ضبط و برچسب زمانی فعلی است. (برای مثال: id-1-2019_12_12_10_41.jfr) (BOOLEAN،‏ false)
•
duration: (اختیاری) مدت زمان ضبط. توجه داشته باشید که 0s به معنای نامحدود و همیشگی است (INTEGER به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، 0s)
•
filename: (اختیاری) نام فایلی که پس از توقف ضبط، داده‌های ضبط پرواز در آن نوشته می‌شوند. اگر نام فایلی مشخص نشود، نامی بر اساس PID و تاریخ فعلی تولید شده و در دایرکتوری محل اجرای فرایند قرار می‌گیرد. این مقدار همچنین می‌تواند یک دایرکتوری باشد، که در این صورت نام فایل بر اساس PID و تاریخ فعلی درون همان دایرکتوری تولید می‌شود. (STRING، بدون مقدار پیش‌فرض)
•
maxage: (اختیاری) حداکثر زمان نگهداری داده‌های ضبط‌شده روی دیسک. این پارامتر تنها زمانی معتبر است که پارامتر disk روی true تنظیم شده باشد. توجه داشته باشید که 0s به معنای نامحدود است. (INTEGER به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، 0s)
•
maxsize: (اختیاری) حداکثر اندازه داده‌ها برای نگهداری روی دیسک به بایت، در صورتی که از این پسوندها استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. این پارامتر تنها زمانی معتبر است که پارامتر disk روی 'true' تنظیم شده باشد. این مقدار نباید از مقدار پارامتر maxchunksize تنظیم‌شده با دستور JFR.configure کمتر باشد. (STRING،‏ 0 (بدون حداکثر اندازه))
•
name: (اختیاری) نام ضبط. اگر نامی ارائه نشود، یک نام تولید خواهد شد. نام تولیدشده را که در پاسخ دستور نشان داده می‌شود یادداشت کنید تا بتوانید از آن در سایر دستورها استفاده نمایید. (STRING، نام پیش‌فرض تولیدشده توسط سیستم)
•
path-to-gc-root: (اختیاری) پرچمی برای ذخیره مسیر به ریشه‌های بازیافت حافظه (GC) در پایان ضبط. اطلاعات مسیر برای یافتن نشت‌های حافظه مفید است، اما جمع‌آوری آن زمان‌بر است. این پرچم را تنها زمانی فعال کنید که مشکوک به وجود نشت حافظه در برنامه هستید. اگر پارامتر settings روی 'profile' تنظیم شده باشد، اطلاعات جمع‌آوری‌شده شامل رد پشته (stack trace) مکانی است که شیء دارای نشت بالقوه در آن تخصیص یافته بود. (BOOLEAN،‏ false)
•
settings: (اختیاری) نام فایل تنظیماتی که رویدادهای مدنظر برای ضبط را مشخص می‌کند. برای مشخص کردن بیش از یک فایل، نام‌ها را با کاما (',') جدا کنید. اگر فایل در JAVA-HOME/lib/jfr نیست، مسیر کامل آن را بگنجانید. نمایه‌های (profiles) زیر همراه با JDK در دایرکتوری JAVA-HOME/lib/jfr ارائه شده‌اند: 'default.jfc': مجموعه‌ای از پیش تعریف‌شده از اطلاعات را با بار اضافی (overhead) کم جمع‌آوری می‌کند، بنابراین کمترین تأثیر را بر کارایی دارد و می‌تواند برای ضبط‌هایی که به صورت پیوسته اجرا می‌شوند استفاده شود؛ 'profile.jfc': داده‌های بیشتری نسبت به نمایه 'default.jfc' ارائه می‌دهد، اما بار اضافی و اثرگذاری بیشتری بر کارایی دارد. از این پیکربندی برای دوره‌های زمانی کوتاه در صورت نیاز به اطلاعات بیشتر استفاده کنید. برای شروع ضبط بدون یک فایل پیکربندی از پیش تعریف‌شده، از none استفاده کنید. (STRING،‏ JAVA-HOME/lib/jfr/default.jfc)

تنظیمات رویدادها و گزینه‌های .jfc را می‌توان با استفاده از نحو زیر مشخص کرد:

•
option: (اختیاری) مقدار گزینه‌ای که باید تغییر کند را مشخص می‌کند. برای فهرست کردن گزینه‌های موجود، از ابزار JAVA_HOME/bin/jfr استفاده کنید.
•
event-setting: (اختیاری) مقدار تنظیمات رویداد را برای تغییر مشخص می‌کند. از قالب: #= استفاده کنید. برای افزودن یک تنظیم رویداد جدید، نام رویداد را با '+' پیشوندگذاری نمایید.

می‌توانید با جدا کردن مقادیر توسط نویسه فاصله (whitespace)، چندین تنظیم رویداد و گزینه .jfc را مشخص کنید. در صورت بروز تداخل میان یک پارامتر و یک گزینه .jfc، اولویت با پارامتر خواهد بود. برای مقادیر بازه زمانی می‌توان نویسه جداکننده فاصله را حذف کرد، مانند 20ms. برای اطلاعات بیشتر درباره نحو تنظیمات، به Javadoc بسته jdk.jfr مراجعه کنید.

توقف یک ضبط پرواز (flight recording)

میزان اثر: کم

نکته:

گزینه‌ها (options) باید با استفاده از نحو key یا key=value مشخص شوند. اگر هیچ پارامتری وارد نشود، هیچ ضبطی متوقف نخواهد شد.

گزینه‌ها (options):

•
filename: (اختیاری) نام فایلی که در هنگام توقف ضبط، داده‌ها در آن نوشته می‌شوند. اگر مسیری ارائه نشود، داده‌های این ضبط نادیده گرفته و دور ریخته می‌شوند. (STRING، بدون مقدار پیش‌فرض)
•
name: (اختیاری) نام ضبط (STRING، بدون مقدار پیش‌فرض)
یک عامل محلی (native agent) ابزار JVMTI را بارگذاری می‌کند.

میزان اثر: کم

مجوز: java.lang.management.ManagementPermission(control)

آرگومان‌ها (arguments):

•
library path: مسیر مطلق عامل JVMTI جهت بارگذاری. (STRING، بدون مقدار پیش‌فرض)
•
agent option: (اختیاری) رشته گزینه جهت ارسال به عامل. (STRING، بدون مقدار پیش‌فرض)
سیگنالی به JVM برای ایجاد درخواست تخلیه داده (data-dump) جهت JVMTI ارسال می‌کند.

میزان اثر: زیاد

مجوز: java.lang.management.ManagementPermission(monitor)

عامل مدیریت از راه دور (remote management agent) را راه‌اندازی می‌کند. تأثیر: کم --- بدون تأثیر

نکته:

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

گزینه‌ها:

•
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 را تنظیم می‌کند (STRING، بدون مقدار پیش‌فرض)
•
jdp.ttl: (اختیاری) com.sun.management.jdp.ttl را تنظیم می‌کند (INT، بدون مقدار پیش‌فرض)
•
jdp.pause: (اختیاری) com.sun.management.jdp.pause را تنظیم می‌کند (INT، بدون مقدار پیش‌فرض)
•
jdp.name: (اختیاری) com.sun.management.jdp.name را تنظیم می‌کند (STRING، بدون مقدار پیش‌فرض)

عامل مدیریت محلی را آغاز می‌کند.

تأثیر: کم --- بدون تأثیر

وضعیت عامل مدیریت را چاپ می‌کند.

تأثیر: کم --- بدون تأثیر

مجوز: java.lang.management.ManagementPermission(monitor)

عامل مدیریت از راه دور را متوقف می‌کند.

تأثیر: کم --- بدون تأثیر

همه threadها را همراه با رد پشته (stacktrace) چاپ می‌کند.

تأثیر: متوسط --- وابسته به تعداد threadها.

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

گزینه‌ها:

•
-l: (اختیاری) قفل‌های java.util.concurrent را چاپ می‌کند (BOOLEAN، false)
یک بایگانی اشتراکی ایستا یا پویا شامل تمام کلاس‌های بارگذاری‌شده فعلی را ذخیره (dump) می‌کند.

تأثیر: متوسط --- زمان مکث به تعداد کلاس‌های بارگذاری‌شده بستگی دارد

مجوز: java.lang.management.ManagementPermission(monitor)

آرگومان‌ها:

•
subcmd: باید یا static_dump باشد یا
•
filename: (اختیاری) نام بایگانی اشتراکی‌ای که باید ذخیره (dump) شود (STRING، بدون مقدار پیش‌فرض)

اگر filename مشخص نشده باشد، یک نام فایل پیش‌فرض با استفاده از pid فرایند JVM هدف انتخاب می‌شود. برای مثال، java_pid1234_static.jsa، java_pid5678_dynamic.jsa و غیره.

اگر filename به‌صورت یک مسیر مطلق مشخص نشده باشد، فایل بایگانی در دایرکتوری‌ای نسبت به دایرکتوری جاری فرایند JVM هدف ایجاد می‌شود.

سلسله‌مراتب classloader را چاپ می‌کند.

تأثیر: متوسط --- به تعداد class loaderها و کلاس‌های بارگذاری‌شده بستگی دارد.

مجوز: java.lang.management.ManagementPermission(monitor)

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

گزینه‌ها:

•
show-classes: (اختیاری) کلاس‌های بارگذاری‌شده را چاپ می‌کند. (BOOLEAN، false)
•
verbose: (اختیاری) اطلاعات تفصیلی را چاپ می‌کند. (BOOLEAN، false)
•
fold: (اختیاری) loaderهای هم‌نام و هم‌کلاس را به‌صورت یکی نشان می‌دهد. (BOOLEAN، true)
آماره‌های مربوط به همه ClassLoaderها را چاپ می‌کند. تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

فهرستی از تمام کلاس‌های بارگذاری‌شده را چاپ می‌کند، همراه با تورفتگی برای نمایش سلسله‌مراتب کلاس‌ها. نام هر کلاس با ClassLoaderData* مربوط به ClassLoader آن، یا اگر توسط بارگذار کلاس راه‌انداز (bootstrap class loader) بارگذاری شده باشد با "null" دنبال می‌شود.

تأثیر: متوسط --- به تعداد کلاس‌های بارگذاری‌شده بستگی دارد.

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

گزینه‌ها:

•
-i: (اختیاری) رابط‌های به‌ارث‌رسیده باید چاپ شوند. (BOOLEAN، false)
•
-s: (اختیاری) در صورت تعیین نام کلاس، زیرکلاس‌ها چاپ می‌شوند. اگر نام کلاس مشخص نشود، فقط ابرکلاس‌ها چاپ می‌شوند. (BOOLEAN، false)

آرگومان‌ها:

•
classname: (اختیاری) نام کلاسی که سلسله‌مراتب آن باید چاپ شود. در صورت عدم تعیین، سلسله‌مراتب تمام کلاس‌ها چاپ می‌شود. (STRING، بدون مقدار پیش‌فرض)
خط فرمانی را که برای راه‌اندازی این نمونهٔ VM استفاده شده است، چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

کتابخانه‌های پویای بارگذاری‌شده را چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

اطلاعات مربوط به محیط و وضعیت JVM را چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

پیکربندی فعلی گزارش‌گیری را فهرست می‌کند، یک خروجی لاگ را فعال/غیرفعال/پیکربندی می‌کند، یا تمام لاگ‌ها را بازچرخانی می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(control)

گزینه‌ها:

نکته:

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

•
output: (اختیاری) نام یا شناسه (#) خروجی برای پیکربندی. (STRING، بدون مقدار پیش‌فرض)
•
output_options: (اختیاری) گزینه‌های مربوط به خروجی. (STRING، بدون مقدار پیش‌فرض)
•
what: (اختیاری) تعیین می‌کند چه برچسب‌هایی (tags) ثبت شوند. (STRING، بدون مقدار پیش‌فرض)
•
decorators: (اختیاری) تعیین می‌کند از چه تزئین‌کننده‌هایی (decorators) استفاده شود. برای حذف همه، از 'none' یا یک مقدار خالی استفاده کنید. (STRING، بدون مقدار پیش‌فرض)
•
disable: (اختیاری) تمام گزارش‌گیری‌ها را غیرفعال کرده و پیکربندی لاگ را پاک می‌کند. (BOOLEAN، بدون مقدار پیش‌فرض)
•
list: (اختیاری) پیکربندی فعلی لاگ را فهرست می‌کند. (BOOLEAN، بدون مقدار پیش‌فرض)
•
rotate: (اختیاری) تمام لاگ‌ها را بازچرخانی می‌کند. (BOOLEAN، بدون مقدار پیش‌فرض)
گزینه‌های پرچم VM و مقادیر فعلی آن‌ها را چاپ می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

گزینه‌ها:

•
-all: (اختیاری) تمام پرچم‌های پشتیبانی‌شده توسط VM را چاپ می‌کند (BOOLEAN، false).
میزان مصرف حافظهٔ بومی (native memory) را چاپ می‌کند.

تأثیر: متوسط

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحوِ key یا key=value مشخص شوند.

گزینه‌ها:

•
summary: (اختیاری) از زمان اجرا (runtime) درخواست می‌کند خلاصه‌ای از وضعیت فعلی حافظه را گزارش دهد، که شامل کل حافظهٔ رزروشده و تثبیت‌شده (committed)، به همراه خلاصهٔ مصرف حافظه بر اساس هر زیرسیستم است. (BOOLEAN، false)
•
detail: (اختیاری) از زمان اجرا درخواست می‌کند تخصیص حافظهٔ >= 1K را بر اساس هر نقطهٔ فراخوانی (callsite) گزارش دهد. (BOOLEAN، false)
•
baseline: (اختیاری) از زمان اجرا درخواست می‌کند مصرف فعلی حافظه را به عنوان خط مبنا (baseline) ثبت کند تا بعداً بتوان آن را مقایسه کرد. (BOOLEAN، false)
•
summary.diff: (اختیاری) از زمان اجرا درخواست می‌کند مقایسهٔ خلاصهٔ حافظه را نسبت به خط مبنای قبلی گزارش دهد. (BOOLEAN، false)
•
detail.diff: (اختیاری) از زمان اجرا درخواست می‌کند مقایسهٔ تفصیلی حافظه را نسبت به خط مبنای قبلی گزارش دهد، که فعالیت‌های تخصیص حافظه را در نقاط مختلف فراخوانی نشان می‌دهد. (BOOLEAN، false)
•
shutdown: (اختیاری) از زمان اجرا درخواست می‌کند که خود را خاموش کرده و حافظهٔ مصرف‌شده توسط زمان اجرا را آزاد کند. (BOOLEAN، false)
•
statistics: (اختیاری) آمارهای ردیاب (tracker) را برای اهداف تنظیم و بهینه‌سازی چاپ می‌کند. (BOOLEAN، false)
•
scale: (اختیاری) مقیاس نمایش مصرف حافظه، بر حسب KB، MB یا GB (STRING، KB)
تمام متدهایی را که در طول دورهٔ حیات این JVM دست‌کم یک بار لمس (فراخوانی) شده‌اند چاپ می‌کند. تأثیر: متوسط --- به محتوای Java بستگی دارد.

گزینهٔ فلگ VM را با استفاده از مقدار ارائه‌شده تنظیم می‌کند.

تأثیر: کم

مجوز: java.lang.management.ManagementPermission(control)

آرگومان‌ها:

•
flag name: نام فلگی که می‌خواهید تنظیم کنید (STRING، بدون مقدار پیش‌فرض)
•
string value: (اختیاری) مقداری که می‌خواهید تنظیم کنید (STRING، بدون مقدار پیش‌فرض)
جدول رشته‌ها را تخلیه می‌کند.

تأثیر: متوسط --- به محتوای Java بستگی دارد.

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحو key یا key=value مشخص شوند.

گزینه‌ها:

•
-verbose: (اختیاری) محتوای هر رشته در جدول را تخلیه می‌کند (BOOLEAN، false)
جدول نمادها را تخلیه می‌کند.

تأثیر: متوسط --- به محتوای Java بستگی دارد.

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحو key یا key=value مشخص شوند.

گزینه‌ها:

•
-verbose: (اختیاری) محتوای هر نماد در جدول را تخلیه می‌کند (BOOLEAN، false)
آمار مربوط به اندازه‌های جدول درهم‌سازی دیکشنری و طول باکت‌ها را چاپ می‌کند.

تأثیر: متوسط

مجوز: java.lang.management.ManagementPermission(monitor)

نکته:

گزینه‌های زیر باید با استفاده از نحو key یا key=value مشخص شوند.

گزینه‌ها:

•
verbose: (اختیاری) محتوای هر مدخل دیکشنری را برای تمام بارگذارهای کلاس تخلیه می‌کند (BOOLEAN، false).
ویژگی‌های سیستم را چاپ می‌کند.

تأثیر: کم

مجوز: java.util.PropertyPermission(*, read)

مدت‌زمان فعالیت VM را چاپ می‌کند.

تأثیر: کم

نکته:

گزینه‌های زیر باید با استفاده از نحو key یا key=value مشخص شوند.

گزینه‌ها:

•
-date: (اختیاری) پیشوندی شامل تاریخ کنونی اضافه می‌کند (BOOLEAN، false)
اطلاعات نسخهٔ JVM را چاپ می‌کند.

تأثیر: کم

مجوز: java.util.PropertyPermission(java.vm.version, read)

2021 JDK 17