jps(1) Monitoring Tools jps(1)

jps - ماشین‌های مجازی جاوای (JVMs) ابزاربندی‌شده روی سیستم هدف را فهرست می‌کند. این دستور آزمایشی است و پشتیبانی نمی‌شود.

jps [ options ] [ hostid ]
گزینه‌های خط فرمان. بخش گزینه‌ها را ببینید.
شناسهٔ میزبانی که گزارش فرایند باید برای آن تولید شود. مقدار hostid می‌تواند شامل مؤلفه‌های اختیاری باشد که پروتکل ارتباطی، شماره پورت و سایر داده‌های مختص پیاده‌سازی را مشخص می‌کنند. بخش شناسه میزبان را ببینید.

دستور jps ماشین‌های مجازی جاوای HotSpot ابزاربندی‌شده روی سیستم هدف را فهرست می‌کند. این دستور تنها قادر به گزارش اطلاعات دربارهٔ JVMهایی است که مجوز دسترسی به آن‌ها را داشته باشد.

اگر دستور jps بدون تعیین یک hostid اجرا شود، به دنبال JVMهای ابزاربندی‌شده روی میزبان محلی می‌گردد. اگر با یک hostid آغاز شود، با استفاده از پروتکل و پورت مشخص‌شده، به جستجوی JVMها روی میزبان اشاره‌شده می‌پردازد. فرض می‌شود که یک فرایند jstatd روی میزبان هدف در حال اجرا باشد.

دستور jps شناسهٔ محلی JVM یا lvmid را برای هر JVM ابزاربندی‌شدهٔ یافت‌شده روی سیستم هدف گزارش می‌دهد. مقدار lvmid معمولاً، ولی نه لزوماً، شناسهٔ فرایند سیستم‌عامل برای فرایند JVM است. بدون هیچ گزینه‌ای، jps مقدار lvmid هر برنامهٔ جاوا را به همراه شکل کوتاه نام کلاس برنامه یا نام فایل JAR فهرست می‌کند. شکل کوتاه نام کلاس یا نام فایل JAR از اطلاعات بستهٔ (package) کلاس یا مسیر فایل‌های JAR صرف‌نظر می‌کند.

دستور jps از راه‌انداز جاوا برای پیدا کردن نام کلاس و آرگومان‌های ارسالی به متد main استفاده می‌کند. اگر JVM هدف با یک راه‌انداز سفارشی راه‌اندازی شده باشد، نام کلاس یا فایل JAR و آرگومان‌های متد main در دسترس نخواهند بود. در این حالت، دستور jps رشتهٔ Unknown را برای نام کلاس یا فایل JAR و همچنین برای آرگومان‌های ارسالی به متد main در خروجی چاپ می‌کند.

فهرست JVMهای ارائه‌شده توسط دستور jps می‌تواند توسط مجوزهای اعطاشده به کاربر یا هویت اجراکنندهٔ دستور محدود شود. این دستور تنها JVMهایی را فهرست می‌کند که هویت مذکور بر اساس سازوکارهای کنترل دسترسی سیستم‌عامل، حق دسترسی به آن‌ها را داشته باشد.

دستور jps از شماری گزینه پشتیبانی می‌کند که خروجی دستور را تغییر می‌دهند. این گزینه‌ها در آینده ممکن است تغییر کنند یا حذف شوند.


خروجی نام کلاس، نام فایل JAR و آرگومان‌های ارسالی به متد main را لغو کرده و تنها فهرستی از شناسه‌های محلی JVM تولید می‌کند.

آرگومان‌های ارسالی به متد main را نمایش می‌دهد. خروجی برای JVMهای تعبیه‌شده ممکن است null باشد.

نام کامل بسته (package) را برای کلاس main برنامه یا مسیر کامل فایل JAR برنامه نمایش می‌دهد.

آرگومان‌های ارسالی به JVM را نمایش می‌دهد.

خروجی نام کلاس، نام فایل JAR و آرگومان‌های ارسالی به متد main را لغو کرده و تنها فهرستی از شناسه‌های محلی JVM تولید می‌کند.

گزینهٔ option را به JVM ارسال می‌کند، که در آن option یکی از گزینه‌های شرح‌داده‌شده در صفحهٔ مرجع راه‌انداز برنامهٔ جاوا است. برای نمونه، -J-Xms48m حافظهٔ راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند. java(1) را ببینید.

شناسهٔ میزبان یا hostid رشته‌ای است که سیستم هدف را مشخص می‌کند. ساختار نحوی رشتهٔ hostid با ساختار نحوی یک URI مطابقت دارد:

[protocol:][[//]hostname][:port][/servername]
پروتکل ارتباطی. اگر protocol حذف شود و hostname تعیین نشده باشد، پروتکل پیش‌فرض یک پروتکل محلی بهینه‌شده و مختص سکو خواهد بود. اگر پروتکل حذف شود و یک نام میزبان تعیین شده باشد، پروتکل پیش‌فرض rmi است.
یک نام میزبان یا نشانی IP که میزبان هدف را مشخص می‌کند. اگر پارامتر hostname را حذف کنید، میزبان هدف همان میزبان محلی خواهد بود.
پورت پیش‌فرض برای برقراری ارتباط با کارساز دوردست. اگر پارامتر hostname حذف شود یا پارامتر protocol یک پروتکل محلی بهینه‌شده را تعیین کند، پارامتر port نادیده گرفته می‌شود. در غیر این صورت، نحوهٔ رفتار با پارامتر port به پیاده‌سازی بستگی دارد. برای پروتکل پیش‌فرض rmi، پارامتر port شماره پورت rmiregistry را روی میزبان دوردست مشخص می‌کند. اگر پارامتر port حذف شود و پارامتر protocol بیانگر rmi باشد، پورت پیش‌فرض rmiregistry یعنی 1099 استفاده می‌شود.
رفتار با این پارامتر به پیاده‌سازی بستگی دارد. برای پروتکل محلی بهینه‌شده، این فیلد نادیده گرفته می‌شود. برای پروتکل rmi، این پارامتر رشته‌ای است که نام شیء دوردست RMI را روی میزبان دوردست مشخص می‌کند. برای اطلاعات بیشتر گزینهٔ -n در دستور jstatd را ببینید.

خروجی دستور jps از الگوی زیر پیروی می‌کند:

lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

تمام توکن‌های خروجی با فاصله از هم جدا می‌شوند. مقدار arg که شامل فاصله‌های درونی باشد، هنگام تلاش برای نگاشت آرگومان‌ها به پارامترهای مکانی واقعی‌شان ابهام ایجاد می‌کند.

نکته: توصیه می‌شود برای تجزیهٔ خروجی jps اسکریپت ننویسید زیرا ممکن است این قالب در نسخه‌های آینده تغییر کند. اگر اسکریپت‌هایی می‌نویسید که خروجی jps را تجزیه می‌کنند، انتظار داشته باشید که برای نسخه‌های بعدی این ابزار آن‌ها را ویرایش کنید.

این بخش مثال‌هایی از دستور jps را ارائه می‌دهد.

فهرست کردن JVMهای ابزاربندی‌شده روی میزبان محلی:

jps
18027 Java2Demo.JAR
18032 jps
18005 jstat

مثال زیر JVMهای ابزاربندی‌شده روی یک میزبان دوردست را فهرست می‌کند. این مثال فرض می‌کند که کارساز jstat و یا ثبات داخلی RMI آن یا یک فرایند خارجی مجزای rmiregistry روی میزبان دوردست روی پورت پیش‌فرض (پورت 1099) در حال اجرا هستند. همچنین فرض می‌کند که میزبان محلی مجوزهای مناسب برای دسترسی به میزبان دوردست را داراست. این مثال همچنین شامل گزینهٔ -l برای ارائهٔ شکل کامل نام‌های کلاس یا فایل‌های JAR در خروجی است.

jps -l remote.domain
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd

مثال زیر JVMهای ابزاربندی‌شده را روی یک میزبان دوردست با پورتی غیر از پیش‌فرض برای ثبات RMI فهرست می‌کند. این مثال فرض می‌کند که کارساز jstatd با یک ثبات داخلی RMI متصل به پورت 2002 روی میزبان دوردست در حال اجرا است. این مثال همچنین از گزینهٔ -m برای گنجاندن آرگومان‌های ارسالی به متد main هر یک از برنامه‌های جاوای فهرست‌شده استفاده می‌کند.

jps -m remote.domain:2002
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
3102 sun.tools.jstatd.jstatd -p 2002

•
java(1)
•
jstat(1)
•
jstatd(1)
•
rmiregistry(1)
21 November 2013 JDK 8